正如标题所说。我正在创建一个代码段,需要先清除缓冲区才能开始新的输入,但是,当使用cin.ignore()
时,缓冲区已清除,但用户随后需要按另一个回车键。有什么方法可以将Enter插入缓冲区以为用户自动命中Enter,还是可以使cin.ignore
不需要其他Enter。
我正在使用cin.getline
检索输入。
void Clear(){
cin.clear();
cin.ignore(250, '\n');
}
2个问题:
您正在使用的“ std :: cin.ignore()”中的第一个参数只是很大的数字。 这应该是输入缓冲区可以容纳的最大字符数。在不同的系统上,甚至在不同编译器的头文件中,此数字可能会有所不同。
您需要按两次Enter键,因为缓冲区中没有可忽略的内容。它正在等待输入忽略的内容。有些人会使用它在“返回0;”之前暂停程序。