大神,c语言,我要把一个txt格式的文件里的内容复制到另一个txt文件中

intmain(){//将一个磁盘文件中的信息复制到另一个磁盘中FILE*fp1,*fp2;charch,file1[20],file2[10];printf("请输入你... int main()
{
//将一个磁盘文件中的信息复制到另一个磁盘中
FILE *fp1,*fp2;
char ch,file1[20],file2[10];
printf("请输入你想打开的已存在文件的名字:");
scanf("%s",file1);
fflush(stdin);
printf("请输入你想新建的文件的名字:");
scanf("%s",file2);
fflush(stdin);
if((fp1=fopen(file1,"r"))==NULL) {
printf("cannot open file.\n");
exit(0);
}
if((fp2=fopen(file2,"w"))==NULL) {
printf("cannot open file.\n");
exit(0);
}
while(!feof(fp1)){
fputc(fgetc(fp1),fp2);
putchar(fgetc(fp1));
}
fclose(fp1);
fclose(fp2);
system("PAUSE");
return 0;
}
我的第一个txt文件中的内容是“i love you!”而复制过来的是“ilv o! ”而屏幕上显示的是“ oeyu”,这是什么状况
展开
 我来答
滴冰的水
推荐于2016-10-25 · TA获得超过1040个赞
知道小有建树答主
回答量:250
采纳率:0%
帮助的人:326万
展开全部
您好,您这个程序的问题在于 while中 fgetc 的调用
while(!feof(fp1)){
fputc(fgetc(fp1),fp2); //此处已经调用了fgetc(fp1),得到一个字符
putchar(fgetc(fp1));//再次调用,取下一个字符
}

所以会导致1,3,5,7....被用来写入文件,而2,4,6,8...被显示
xujie520520
2012-09-07 · TA获得超过397个赞
知道小有建树答主
回答量:320
采纳率:100%
帮助的人:244万
展开全部
因为你putchar又调用了一次fgetc。这就会读取下一个字符了。然后你再往文件里面写就是写的第三个字符了,也就是说你13579的字符写到了文件,而2468的字符打印到标准输出也就是屏幕了。你把putchar这行去掉就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式