c语言中scanf的使用问题(大家一直以来对它的误解)(1)

C语言scanf

大家刚开始学习C语言的时候,一直存在一个误解,认为scanf是直接从键盘读取数据,其实这是不正确的,大家可能没有理解得比较透彻。其实,scanf函数可没有能力直接从键盘读取数据,它仅仅是从标准IO输入缓冲区读取数据而已,而这些缓冲区的数据来自于内核,内核数据才来自于键盘。 拓展:由于scanf只是读取缓冲区的数据,因此如果数据个数跟scanf约定的不同时,这些数据将被残留在缓冲区内,影响scanf下次的运行,那怎么清空这些不合格的非法输入呢?方法如下:

while(getchar() != 'n');

只有深入去了解它,才更好的驾驭它,为你所用!

,