#include <stdio.h>
int main()
{
char c = getchar(); //EOF (ctrl + d )
while( ( c = getchar() ) != '?' )
{
printf( "%d\n", c == EOF );//infinite loop printing 1
}
}
这里发生了什么?
就好像 EOF 完全阻止读取它之后的任何内容?
最佳答案
您需要调用clearerr在 stdin
上清除 EOF。另外,请注意 getchar
返回一个 int
而不是 char
因为 EOF
不适合 char。
关于发送 EOF 后无法读取任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70374743/