如何在C语言中正确到达文件末尾
我正在做一个与我的课程相关的C项目。我需要从名为file2.txt的文件中读取单词,该文件的内容: file2.txt:如何在C语言中正确到达文件末尾,c,file,C,File,我正在做一个与我的课程相关的C项目。我需要从名为file2.txt的文件中读取单词,该文件的内容: file2.txt: stephen elis elis awkward hello bye stephen ayse goodbye book picture pencil 我正在使用: FILE *file = fopen("file2.txt" , "r"); char word[15]; while(!feof(file)) { fscanf(file,"%s
stephen elis elis
awkward
hello bye
stephen ayse
goodbye
book picture pencil
我正在使用:
FILE *file = fopen("file2.txt" , "r");
char word[15];
while(!feof(file))
{
fscanf(file,"%s",word);
printf("%s" , word);
printf("\n");
}
但当这些文字被打印出来时,结果是:
stephen
elis
elis
awkward
hello
bye
stephen
ayse
goodbye
book
picture
pencil
pencil --> printed second time
因此,最后一个字印刷了两次,我不明白为什么。请帮助我修复此错误,因为完成此错误的时间有限!
谢谢…您可以检查fscanf返回值 修复:对不起,应该这样使用:
if (EOF != fscanf(file,"%s",word))
printf ("%s\n" , word);
编辑:或者更好:
if (0 < fscanf(file,"%s",word))
printf ("%s\n" , word);
if(0
由于EOF值为(-1)决不使用
feof
。。。(还有成百上千的副本)。谢谢你WhozCraig,但我仍然不确定,我也不知道什么是解决我问题的最佳方案,我是C的新手。看到修复,我的答案是sscanf…非常感谢你!我现在工作:)