while((ch=getchar()) != '\n');函数实际使用价值。
以下为测试代码,无实际意义!
如图一,利用该代码进行一个密码的确认,但实际上在运行过程中会直接跳过ret = getchar();函数的读写,利用调试检测出当输入密码后,跳入下一行中,ret变量值变为10,我们并不能输入ret变量,查询ASCLL表可知10为字符 '\n' 的数值;
(图一)
经过查找资料我们发现在实际运行输入函数的过程中会调用一个输入缓冲区。如下图所示
所以我们可以想方法将输入缓冲区中的字符在下一次需要写入前全部读取出来,可如下图所示:
!!!使用while循环可以确保内部字符全部取出,以避免缓冲区中存在大量剩余数据。