scanf() 和 getchar() 工作方式不同

问题描述 投票:0回答:1
char a;
while(scanf("%c", &a)==1){

}
char a;
while((a = getchar())!=EOF){

}

我以为这两个代码会做同样的事情,但实际上它们看起来不同。 它们通常工作原理相同,但对于一些特定的输入,它的工作方式有所不同。

当标准输入中包含值 FF(255) 时,使用 EOF 将终止,而 scanf() 将继续执行直到输入结束。 为什么会发生这种情况以及如何使用 getchar() 并执行与 while(scanf()) 相同的操作

c scanf stdio getchar
1个回答
0
投票

您的代码错误。第二种情况应该是

int a;
。那么 255 将返回为 255,EOF 将返回为 EOF。 – 用户207421

© www.soinside.com 2019 - 2024. All rights reserved.