getchar()它确实每次只能读取一个字符,但是循环下一次遇到getchar()其实是从缓冲区读取用户上一次输入的字符串剩下的字符,直到遇到'\n'才结束
如果没有设定'\n'这个条件,那么接下来的getchar()才是再一次键盘输入,所以用户才会产生"每次出来一个字符,并且下一次循环是再次输入"这种错觉。
扩展资料:
getchar()函数原理
getchar由宏实现:#define getchar() getc(stdin)。getchar有一个int型的返回值,当程序调用getchar时,程序就等着用户按键。
用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止,当用户键入回车之后,getchar才开始从stdin流中每次读入一个字符。
参考资料来源:百度百科-getchar()