Linux下getchar()输入缓冲区stdin问题分析与处理

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 20:26   1782   0

今天在写一个程序,想让这个程序每次只接受一个字符输入,然后能马上显示出来.

使用的函数为getchar(),但是发现由于getchar是从stdin的缓冲区进行读取.如果缓冲区还有信息会再下次读取缓冲区.

这就造成即使不输入也会输出很多之前遗留的字符.

解决办法:

在获取完字符后,加入这句话一次性读完回车前所有字符.

char ch;

ch = getchar();

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

这样就可以了.网上有提到fflush或者setbuf,也用了一下,但似乎不能解决这个问题.

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP