【发布时间】:2023-03-09 16:23:01
【问题描述】:
这是我的代码。
#include<stdio.h>
void main(){
FILE *fp;
int a,b;
fp=fopen("hello.txt","r");
while(!feof(fp)){
fscanf(fp,"%d %d",&a,&b);
printf("%d %d\n",a,b);
}
}
我的 hello.txt 是
1 2
3 4
我的输出是
1 2
3 4
4 4
为什么我的最后一行被打印了两次。 fp 还没到 EOF 吗?
另外,stackoverflow 中的标签显示Usually, when it is used, the code using it is wrong.
这是什么意思?
谢谢。
【问题讨论】:
-
main应该在 C 和 C++ 中返回int(您的编译器可能允许这样做,但不要这样做。) -
这是一个很棒的标签描述。
eof确实几乎不是你想要的。