【发布时间】:2023-03-17 23:25:01
【问题描述】:
考虑以下 C 代码 sn-p:
#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);
它按预期工作。为什么会这样?
有人告诉我这与清除输入缓冲区有关。有人能解释一下吗?
【问题讨论】: