C语言~将两个文本文件的内容合并后存入另一文件中,试编写相应程序.

2024-11-19 12:36:23
推荐回答(2个)
回答(1):

以下程序调试成功,我一直使用(ch=fgetc(fp1))!=EOF来判断文件尾,没有出错过,至于为什么的问题我就不知道了

#include
#include
void main()
{
char ch;
FILE *fp1,*fp2,*fp3;
if((fp1=fopen("C:\\Documents and Settings\\Administrator\\桌面\\1.txt","r"))==NULL)
{printf("打开文件1.txt失败!\n");
exit(1);
}
else
printf("打开文件1.txt成功!\n");
if((fp2=fopen("C:\\Documents and Settings\\Administrator\\桌面\\2.txt","r"))==NULL)
{printf("打开文件2.txt失败!\n");
exit(3);
}
else
printf("打开文件2.txt成功!\n");
if((fp3=fopen("C:\\Documents and Settings\\Administrator\\桌面\\3.txt","a"))==NULL)
{printf("打开文件3.txt失败!\n");
exit(3);
}
else
printf("打开文件3.txt成功!\n");
while((ch=fgetc(fp1))!=EOF)
fputc(ch,fp3);
while((ch=fgetc(fp2))!=EOF)
fputc(ch,fp3);
fclose(fp1);
fclose(fp2);
fclose(fp3);
}

回答(2):

楼主可以在百度知道中输入feof查看feof的百科解释。
反正我没看懂,只知道while(!feof)会多复制最后的数据,上次我想屏幕输出是用了这个写法,最后一个数据输出了两次。
楼主用
while(1)
{ fprintf(fp,"%c",c);
if(feof(fp)!=1) break;
}试一试行不行,上次一个人给我说的这样写。