如何在C中正确到达文件末尾

时间:2013-12-01 10:49:15

标签: 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",word);
        printf("%s" , word);
        printf("\n");

    }

但是当打印出单词时,结果是:

stephen
elis 
elis
awkward
hello
bye
stephen
ayse
goodbye
book
picture
pencil
pencil   --> printed second time

因此,最后一个字被打印两次,我不明白为什么。请帮我修复此错误,因为时间有限,无法完成此错误! 谢谢......

1 个答案:

答案 0 :(得分:0)

你可以检查fscanf返回值

FIX:抱歉,应该像这样使用:

if (EOF != fscanf(file,"%s",word))
  printf ("%s\n" , word);

编辑:或者更好:

  if (0 < fscanf(file,"%s",word))
      printf ("%s\n" , word);

因为EOF值是(-1)