直接上代码
这里我会用到char FILE 等
void file(){
FILE *outfile[20]; //创建20个文件
char a[22] = "outfile_ .txt"; // 创建一个22长度的字符串数组
for(int i = 0; i < 20; i++){
a[8] = '0' + i/10; //第九个字符是0-1
a[9] = '0' + i%10; //第10个字符是0-9
outfile[i] = fopen(a,"w"); //打开文件 方式是 可写
}
ifstream read("data_4.txt"); //data_4.txt文件里面是1-100w 读入文件
while(!read.eof()){
int b;
read >> b ;
// cout<<"b = "<<b<<endl;
int filename = (int)b/50000; //100万个数据分成20份
fprintf(outfile[filename],"%8d \n",b); //写入20个文件内
}
//关闭20个文件
for(int i = 0; i < 20; i++){
fclose(outfile[i]);
}
return 0;
}
这里解释一下没有主函数 是在Root.cern环境下运行
第二种方法
void file2(){
FILE *outfile[20];
char filename[200];
for(int i = 0; i < 20; i++){
sprintf(filename,"%s%d%s","filename",i+1,".txt");
cout<<filename<<endl; ԃԚДʾfilename£¬·½±㳩¿´½ẻ
outfile[i] = fopen(filename,"w");
}
ifstream read("data_4.txt");
while(!read.eof()){
int a;
read >> a;
int data = (int)a/50000;
fprintf(outfile[data],"%8d \n",a);
}
for(int i = 0; i < 20; i++){
fclose(outfile[i]);
}
return 0;
}