我只是对 C 中的基本流处理感到困惑。即使经过一个小时的谷歌搜索和阅读这个问题,我也并不聪明(这不是我第一次尝试深入研究这个问题)。我正在尝试从输入中读取数字,直到达到 EOF 或非数字并能够区分这 2 个。据我了解,这应该可行,但feof
andferror
条件永远不会成立。这是为什么 ?有人可以为我提供一个有效的代码片段以及一个虚拟的友好深入解释吗?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int number;
printf("number or EOF:\n");
while(scanf("%d",&number) == 1)
{
printf("read number %d\n",number);
}
if(ferror(stdin))printf("error reading\n");
else if (feof(stdin))printf("eof reached\n");
return 0;
}