为什么空间与使用scanf时的输入不一样?

时间:2014-10-21 19:56:33

标签: c scanf stdio

我有这段代码:

int a, b;
scanf("%d", &a);
scanf("%d", &b);

printf("%d", a + b);

当我有这个输入时,程序运行正常:

1<enter>2<enter>

并返回3(正如所料!)

但是当我尝试使用<space>键输入我的输入时:

1<space>2<space>

没有任何反应,我必须按<enter>才能让我的程序转到下一行。

那么问题是什么?为什么空间有时可以工作而其他时候不会工作?

1 个答案:

答案 0 :(得分:4)

stdin通常是行缓冲的,而非直接的。

因此,在按输入之前,您的程序根本没有输入。