返回信息流是不是建立文件并保存后操作系统会自动加一个我们肉眼看不到的标识符啊?只有程序能读到,并作为判断文件是否结束的标记。
FILE *fd;
char buf[64];
fd = fopen("test.txt","r");
while(!feof(fd))
{
fscanf(fd,"%s",buf);
printf("%s\n",buf);
}
fclose(fd);
这是一条镜像帖。来源:北邮人论坛 / cpp / #38558同步于 2010/4/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
如何判定读文件结束?
CLegend
2010/4/26镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
哇,看的到图,太好了。
以上的代码为什么会输出两个finish呢?
注意text.txt文件finish后有一个回车,如果没有回车就对了,只输出一个finish。
最后那个'\n'被fscanf忽略了仍然输出的是上一次读入的buf内容
【 在 CLegend 的大作中提到: 】
: 哇,看的到图,太好了。
: 以上的代码为什么会输出两个finish呢?
: 注意text.txt文件finish后有一个回车,如果没有回车就对了,只输出一个finish。
写成这样
fd = fopen("test.txt","r");
fscanf(fd,"%s",buf);
while(!feof(fd))
{
printf("%s\n",buf);
fscanf(fd,"%s",buf);
}
fclose(fd);
这个问题自己也遇到过很多次,记住一定要先做io再判断流状态