为了账号安全,请及时绑定邮箱和手机立即绑定

输出的就不对了,就缺失字母,为什么啊?

输出的就不对了,就缺失字母,为什么啊?

C
湖上湖 2023-03-05 22:18:20
#include "stdafx.h"#include "stdio.h"int main(int argc, char* argv[]){FILE*fp,*fp2;fp=fopen("D:\\C\\file5\\file.txt","r");fp2=fopen("D:\\C\\file5\\file2.txt","w");if(fp==NULL)printf("cannot open file");if(fp2==NULL)printf("cannot open file2");char ch;while(!feof(fp)){ch=fgetc(fp);putchar(ch);fputc(ch,fp2);}fclose(fp);fclose(fp2);return 0;}如果while循环里改为:while(!feof(fp)){putchar(fgetc(fp));fputc(fgetc(fp,fp2);}输出内容file的内容:abcdefghijklmnopqrstuvwxyz
查看完整描述

2 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

每次运行fgetc,都会重新去获得一次字符,你在putchar(fgetc(fp));中的fgetc所获得的字符,和fputc(fgetc(fp,fp2)所获得的字符是不同的两个字符。

查看完整回答
反对 回复 2023-03-08
?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

while(!feof(fp))
{
putchar(fgetc(fp));
fweek(fp,ftell(fp)-1,0);\\这里加1句
fputc(fgetc(fp,fp2);
}

查看完整回答
反对 回复 2023-03-08
  • 2 回答
  • 0 关注
  • 62 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信