vs2022如何实现清除输入缓存,使用什么源文件可以实现。
我用的是
#include<conio.h>
fflush(stdin)
但是没用
vs2022如何实现清除输入缓存,使用什么源文件可以实现。
我用的是
#include<conio.h>
fflush(stdin)
但是没用
fflush是冲刷流。
#include <stdio.h>
int fflush(FILE *stream);
对于输出流,fflush强迫写所有的用户缓冲数据到指定输出,或通过基础的写函数更新流。
对于输入流关联的可定位文件(如磁盘文件,不能是管道或终端),fflush()丢弃从基本文件获取的,但还没有被APP使用的任意缓冲数据。
你程序中的stdin,通常是指标准输入,也就是终端,而且是输入流,因此用法是错误的。
如果你是想将用户缓冲区内容输出到终端,那么应该使用fflush(stdout);
如果你是想丢弃用户输入缓冲区的内容,那么可以用cin.ignore(numeric_limits::max(),'\n');
,详见在 C/C++ 中清除输入缓冲区_三贝勒文子的博客-CSDN博客_c++清空输入缓冲区
实际上,cin.ignore(n, c)是忽略字符并计数,直到忽略的字符是c,或者忽略的字符数目达到n,才停止。