12-canf函数的缓冲区

1,当执行scanf函数的时候,并不是直接让我们从键盘中输入的,而是先检查缓冲区中是否有数据,如果有数据才会从缓冲区中取,如果没有数据,才会让我们输入.

2,当我们输入数据的时候,我们输入的数据并不是直接赋给scanf指定的变量,而是先存储到我们的缓冲区,scanf函数再在从缓冲区取数据.

3,如果取出的是数字,整数或者小数,缓存区的空格,tab,回车就会自动被忽略,如果要拿的是一个char数据,他就不会放过任何一个数据!

4,这个时候就会造成一个后果,如果缓冲区中有数据,而我要接收一个char类型的数据,它就有可能不会让我输入

5,解决方案: 在输入字符之前,将缓冲区中的数据全部清空.

rewind(stdin);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容