char a;
while(scanf("%c", &a)==1){
}
char a;
while((a = getchar())!=EOF){
}
我以为这两个代码会做同样的事情,但实际上它们看起来不同。 它们通常工作原理相同,但对于一些特定的输入,它的工作方式有所不同。
当标准输入中包含值 FF(255) 时,使用 EOF 将终止,而 scanf() 将继续执行直到输入结束。 为什么会发生这种情况以及如何使用 getchar() 并执行与 while(scanf()) 相同的操作
您的代码错误。第二种情况应该是
int a;
。那么 255 将返回为 255,EOF 将返回为 EOF。 –
用户207421