今天在写一个程序,想让这个程序每次只接受一个字符输入,然后能马上显示出来.
使用的函数为getchar(),但是发现由于getchar是从stdin的缓冲区进行读取.如果缓冲区还有信息会再下次读取缓冲区.
这就造成即使不输入也会输出很多之前遗留的字符.
解决办法:
在获取完字符后,加入这句话一次性读完回车前所有字符.
char ch;
ch = getchar();
while('\n' == getchar());
这样就可以了.网上有提到fflush或者setbuf,也用了一下,但似乎不能解决这个问题.
getchar()输入控制
本文介绍如何使用getchar()函数精确控制字符输入,避免因缓冲区残留导致的多余字符读取问题。通过一种简单有效的方法,确保每次仅读取一个字符。
409

被折叠的 条评论
为什么被折叠?



