C++ - 有什么方法可以将输入插入缓冲区/停止 cin.忽略需要输入?

C++ - Any way to insert an enter into the buffer/Stop cin.ignore requiring enter?

本文关键字:输入 cin 停止 缓冲区 插入 什么 方法 C++      更新时间:2023-10-16

就像标题所说的那样。 我正在创建一个代码段,需要在它之前清除缓冲区才能开始新的输入,但是,当使用cin.ignore()时,缓冲区被清除,但用户之后需要按另一个输入。 有什么方法可以将输入插入缓冲区以自动为用户按回车键,或者我可以让cin.ignore不需要再次输入。

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

void Clear(){
cin.clear();
cin.ignore(250, 'n');
}

2 个问题:

  • 您使用的"std::cin.ignore(("中的第一个参数归结为一个非常大的数字。这应该是输入缓冲区可以容纳的最大字符数。此数字在不同的系统上可能不同,甚至不同编译器的头文件上也可能不同。

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