用C语言从多个文件获取不同的数组并写入不同的新文件中
任务需要,我想把数据从多个文件获取不同的数组并写入不同的新文件中(而且是一个对应一个),下面是我写的把一个文件中的数据写入另一个文件中的程序,这个调试成功了。但是我需要把相应的约1000个文件都这么操作,写的程序运行后只是建立了新的数据文件,并没有将数据一一写入,文件是空的。请教我的程序该怎么改?(不知道我说明白了没有)这是文件一对一写入的代码
#include <iostream>
int main(int argc, char** argv)
{
int i,line,flag;
double a,b;
char ch;
FILE *fp=fopen("G:\\uz\\uz\\C3energy00000.txt","r");
FILE *fpp=fopen("G:\\CCC\\z.txt","w");
if(fp==NULL)
printf("the file don't exist.");
for(i=1,line=1;;i++)
{
ch=fgetc(fp);
if(ch=='\n')
line+=1;
if(ch==EOF)
break;
}
printf("%d\n",line);
fp=fopen("G:\\uz\\uz\\C3energy00000.txt","r");
for(flag=0;flag<5;)//skip the first five line
{
ch=fgetc(fp);
if (ch=='\n')
{
flag+=1;
}
}
line=line-5;
while (fscanf(fp,"%lf %lf",&a,&b)==2)
{
//a=a*1000000;
fprintf(fpp,"%e \n",a*100000);
printf("%e \n",a);
}
fclose(fp);
fclose(fpp);
return 0;
}
这是多个一对一写入的代码
#include <iostream>
int main(int argc, char** argv)
{
int i,line,flag,b=100000,c=100000;
double a;
char ch,filename[1000],data[1000];
FILE *fp;
FILE *fpp;
//creat new file
for(c=100000;c<100854;c++)
{
sprintf(data,"G:\\uz\\new\\data%d.txt",c);
fpp=fopen(data,"w");
}
if(fpp==NULL)
printf("error\n");
//循环,读取多个文件数据行数
for(b=100000;b<100854;b++)
{
sprintf(filename,"G:\\uz\\uz2\\C3energy%d.txt",b);
fp=fopen(filename,"r");
for(i=0,line=0;;i++)
{
ch=fgetc(fp);
if(ch=='\n')
line+=1;
if(ch==EOF)
break;
}
}
//循环,读取多个文件数据并写入新的文件
for(b=100000;b<100854;b++)
{
fp=fopen("filename","r");
for(flag=0;flag<5;)//skip the first five line
{
ch=fgetc(fp);
if (ch=='\n')
{
flag+=1;
}
}
line=line-5;
for(c=100000;c<100004;c++)
{
if(fpp==NULL)
printf("the file don't exist.");
while (fscanf(fp,"%lf %lf",&a,&b)==2)
{
//a=a*1000000;
fpp=fopen(data,"w");
fprintf(fpp,"%e \n",a);
}
}
}
fclose(fp);
fclose(fpp);
return 0;
}
附几组数据
data.zip
(35.04 KB)