我有这段代码:
int a, b;
scanf("%d", &a);
scanf("%d", &b);
printf("%d", a + b);
当我有这个输入时,程序运行正常:
1<enter>2<enter>
并返回3
(正如所料!)
但是当我尝试使用<space>
键输入我的输入时:
1<space>2<space>
没有任何反应,我必须按<enter>
才能让我的程序转到下一行。
那么问题是什么?为什么空间有时可以工作而其他时候不会工作?
答案 0 :(得分:4)
stdin
通常是行缓冲的,而非直接的。
因此,在按输入之前,您的程序根本没有输入。