C ++-将Enter插入缓冲区/停止cin.ignore是否需要Enter?

问题描述 投票:0回答:1

正如标题所说。我正在创建一个代码段,需要先清除缓冲区才能开始新的输入,但是,当使用cin.ignore()时,缓冲区已清除,但用户随后需要按另一个回车键。有什么方法可以将Enter插入缓冲区以为用户自动命中Enter,还是可以使cin.ignore不需要其他Enter。

我正在使用cin.getline检索输入。

void Clear(){
    cin.clear();
    cin.ignore(250, '\n');
}
c++ cin flush ignore
1个回答
1
投票

2个问题:

  • 您正在使用的“ std :: cin.ignore()”中的第一个参数只是很大的数字。 这应该是输入缓冲区可以容纳的最大字符数。在不同的系统上,甚至在不同编译器的头文件中,此数字可能会有所不同。

  • 您需要按两次Enter键,因为缓冲区中没有可忽略的内容。它正在等待输入忽略的内容。有些人会使用它在“返回0;”之前暂停程序。

© www.soinside.com 2019 - 2024. All rights reserved.