【发布时间】:2021-11-24 23:27:39
【问题描述】:
我正在尝试一次选择一个扫描的所有单个值(不能使用数组或字符串)。现在,它跳过了用户实现的第一个值,我不知道为什么。我希望当 getchar 到达“=”时停止循环,这将位于扫描值的末尾。
int main () {
char c;
while(scanf("%c", &c) != '=') {
c=getchar();
printf("print ");
putchar(c);
}
return 0;
}
在终端中,当我输入“a=”时,我只收到“=”而不是“a”。有人可以帮忙吗?
【问题讨论】:
-
检查
scanf返回的内容(不是输入字符) -
永远不要使用
"%c"。始终使用" %c"。 (注意空格。) -
在
scanf("%c", &c)的上下文中,唯一可能的返回值是 1 和 EOF(0 不在可能性之中)。如果没有字符可读取,则返回 EOF;否则,它将返回 1。
标签: c while-loop char scanf getchar