从键盘输入的内存存在缓冲区,也会是内存的一块区域。如果编程时关闭了缓冲区,键盘输入的内容去哪了啊?
int n;
int x=0;
while(1){
x = scanf("%d",&n);//输入1 2 3 4 5
printf("%d ",x);
}
上面代码的输出为1 1 1 1 1
而当我输入一个字母a时,因为scanf读取不到字符a,a就一直在缓存区里,一直循环被读,但返回值都是0,所以会无限输出0.
但当在scanf前关闭缓存区,输入a就只有一个0,输入1 2 3 4 5就输出1 1 1 1 1.
但当在printf和scanf直接关闭缓存区的话,不管输入多少数字,第一个输出的数都只有一个数,例如输入1 2 3,输出1。但之后的输出就正常了,输入1 2 3得到1 1 1.
我想知道缓存区关闭后,从键盘输入的数字存在了哪里?输入1 2 3 4 5还能输出1 1 1 1 1。scanf一次只读一个,但是输出了5个1,也就是说2 3 4 5都没有被扔到,但是缓存区已经关闭了,想知道这些数字存放在哪里了。
谢谢!