C语言清空输入缓存区的几个方法

Posted wildcardo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言清空输入缓存区的几个方法相关的知识,希望对你有一定的参考价值。

办法一:

1 scanf("%d", value);
2 setbuf(stdin, NULL);

将 stdin 输入流由默认缓冲区转为无缓冲区。这样 scanf() 输入完毕后,缓冲区内的东西就消失了。

办法二:

1 while ((c = getchar()) != EOF && c != 
);

使用 getchar() 不断获得缓冲区内的内容,直到缓冲区空为止。建议使用这种方法

办法三:

1 fflush(stdin);

这种方法不在C和C++标准定义里,并非所有编译器都支持这个函数(例如Linux下的GCC就不支持),所以代码的可扩展性较差。

以上是关于C语言清空输入缓存区的几个方法的主要内容,如果未能解决你的问题,请参考以下文章

清空缓存区,避免对缓存区中残留数据对下次读入造成影响

一文带你读懂 C/C++ 语言输入输出流与缓存区

io操作中,通常使用啥方法来强制清空缓存区

sql plus中常用的几个命令

(acm)C++加速输入的几种方法

git删除缓存区中文件