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