考虑以下 C 代码片段:
#include <stdio.h>
int main()
{
int a;
char c;
scanf("%d",&a);
scanf("%c",&c);
printf("int=%d\n",a);
printf("char=%c\n",c);
}
我只能输入整数而不是字符。输出只是整数值,第二个 printf 语句不输出任何值。
但是,如果我在格式说明符之前使用空格:
scanf(" %c",&c);
它按预期工作。为什么会这样?
有人告诉我这与清除输入缓冲区有关。有人可以解释一下吗?