【发布时间】:2020-01-22 09:52:22
【问题描述】:
如果我像下面这样编码
int main()
{
int num;
for(int i = 0; i < 3; i++)
{
printf("enter an integer\n");
scanf("%d", &num);
printf("%d\n", num);
}
return 0;
}
然后输入“1 2 3”,输出为
enter an integer
1 2 3
1
enter an integer
2
enter an integer
3
我知道这是因为缓冲区在输入时一次包含 1、2、3
但是,当我在 scanf 中从“%d”到“%d”添加空格并像以前一样输入相同的内容“1 2 3”时,
输出是
enter an integer
1 2 3
1
enter an integer
2
enter an integer
它并没有像以前那样继续使用“%d”进行小改动
为什么会这样?
【问题讨论】:
标签: c scanf whitespace format-specifiers format-string