我有这个密码:
int a, b;
scanf("%d", &a);
scanf("%d", &b);
printf("%d", a + b);
当我有这个输入时,程序运行良好:
1<enter>2<enter>
并返回
3
(如预期!)但当我尝试使用
<space>
键输入输入时:1<space>2<space>
什么也没发生,我必须按
<enter>
才能使我的程序转到下一行。有什么问题吗?为什么太空有时有用,有时却不有用?
最佳答案
stdin
通常是行缓冲的,而不是立即的。
因此,在按enter之前,程序根本无法获得输入。