我有以下简单的程序可以从文本文件(num.txt)中读取。该文本文件在每行中都有数字1 2 3 4 5。当我运行该程序时,它会打印5次两次。有人可以告诉我为什么会发生这种情况,以及如何解决这个问题?在此先感谢fscanf读取最后的整数两次
int main(void)
{
int number;
FILE *file;
int i = 0;;
file = fopen("num.txt", "r");
while (!feof(file)){
fscanf(file, "%d", &number);
printf("%d\n", number);
}
return 0;
}
这里是我的文本文件num.xtx
1
2
3
4
5
而这里的节目输出
1
2
3
4
5
5
有额外的5
'而(!FEOF(文件)){':: FEOF()是问题 – wildplasser
我建议你阅读[这](事业http://stackoverflow.com/questions/5431941/同时,FEOF文件 - 是 - 总是错的)? – niklasfi
当你看到最后5个时,fscanf返回的值是多少?我打赌它不是1. ;-) –