什么是键盘缓冲区?
简单而言:就是键盘输入的值未全部输出,还有更多的数值未输出,而计算机将这些未输出的值放在了一个缓冲区里,等待第二次输入。
键盘缓冲区一般和scanf有关,当使用scanf时,输入了 字符1+空格+字符2 时,由于scanf遇见空格后停止读取,于是此时多余的空格+字符2会存入计算机的缓冲区里,之后若是再遇见scanf、gets、getchar时,就不能从键盘上输入,而是键盘缓冲区里的值会自动填入。
- #include<stdio.h>
- int main() {
- int a;
- char b[10] ;
- char d[10];
- scanf("%s", b);//输入qwer<空格>123
- printf("%s\n", b);//输出qwer
-
- gets(d); //会自动填入<空格>123
- printf("%s", d);//输出<空格>123
-
- 或者a=getchar(); //会自动从缓冲区里拿出第一个字符填入
- putchar(a); //输出<空格>
-
- }
有人问,如果第二次输入还是scanf,键盘缓冲区的空格岂不是会使它再一次读取失败。事实上,使用scanf时,若是输入的第一个字符遇见空格会自动跳过它,读取下一个字符。
如输入 :<空格>qwer 则输出:qwer
---------------来自一个不知名的菜鸟大二学生
请路过的帅哥美女点点赞支持支持我,ヾ(o′▽`o)ノ°°谢谢