我正在做一个与我的课程相关的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
因此,最后一个字被打印两次,我不明白为什么。请帮我修复此错误,因为时间有限,无法完成此错误! 谢谢......
答案 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)