输入缓冲区是否会在 scanf
读数?
#include <stdio.h>
int main(void)
{
int a, b;
scanf("%d", &a);//I inputted 3
scanf("%d", &b);//I inputted 4
}
所以当我给输入 4
是 3
存在于输入缓冲区中?
所以当我输入4的时候,输入缓冲区里有3个吗?
不,3被消耗了。
你不能重新读取它(以int或其他方式)。
如果你输入 "3<enter>"
3被消耗掉了,而缓冲区只包含了 "<enter>"
. 然后输入 "4<enter>"
缓冲区中。第2次扫描f (*)消耗了初始输入和4个离开的 "<enter>"
用于下一次输入操作。
(*)转换说明符 "%d"
跳过可选的前导空格,并(尝试)将输入的其余部分转换为整数(如果没有发生错误)。