3,882
社区成员




#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
FILE *fp500 =fopen("d:\\500.txt","r");
FILE *fp100 =fopen("d:\\100.txt","w");
FILE *fp400 =fopen("d:\\400.txt","w");
int n =0;
char buf[2048]={0};
int n400 =0;
int n100 =0;
srand( (int)time(0) );
while(fgets(buf,2048,fp500))
{
n= rand()%RAND_MAX;
if ( n%2 )
{
if (n100<100)
{
n100++;
fprintf(fp100,buf);
}else{
n400++;
fprintf(fp400,buf);
}
}else{
if (n400<400)
{
n400++;
fprintf(fp400,buf);
}else{
n100++;
fprintf(fp100,buf);
}
}
}
return 0;
}
#include<iostream>
#include<fstream>
#include <string>
#include <ctime>
using namespace std;
int main(void)
{
ifstream Ori;
ofstream Ori1, Ori2;
string temp;
int i = 0, j = 0;
int num = 0;
Ori.open("D:\\ori.txt", ios::in); //读取初始文件
Ori1.open("d:\\ori1.txt", ios::out);
Ori2.open("d:\\ori2.txt", ios::out);
if (Ori.fail()) //如果打开文件失败 ,返回
return 0;
else
{
while (getline(Ori, temp)) //获取行数 num
{
num++;
}
cout << "line num " << num << endl;
Ori.clear();
Ori.seekg(0, ios_base::beg); //文件指针定位到开头
while (getline(Ori, temp)) //读取成功一行,num++
{
//cout << " ori " << temp << endl;
if (rand() % 2) //随机数为奇数 文件1读取
{
if (i == num * 0.8) //80%
Ori2 << temp << endl;
else
{
Ori1 << temp << endl;
i++;
}
}
else
{
if (j == num * 0.2)
Ori1 << temp << endl;
else
{
Ori2 << temp << endl;
j++;
}
}
}
}
return 0;
}