C++ - 有什么方法可以将输入插入缓冲区/停止 cin.忽略需要输入?
C++ - Any way to insert an enter into the buffer/Stop cin.ignore requiring enter?
就像标题所说的那样。 我正在创建一个代码段,需要在它之前清除缓冲区才能开始新的输入,但是,当使用cin.ignore()
时,缓冲区被清除,但用户之后需要按另一个输入。 有什么方法可以将输入插入缓冲区以自动为用户按回车键,或者我可以让cin.ignore
不需要再次输入。
我正在使用cin.getline
来检索输入。
void Clear(){
cin.clear();
cin.ignore(250, 'n');
}
2 个问题:
-
您使用的"std::cin.ignore(("中的第一个参数归结为一个非常大的数字。这应该是输入缓冲区可以容纳的最大字符数。此数字在不同的系统上可能不同,甚至不同编译器的头文件上也可能不同。
-
您需要按两次回车键,因为缓冲区中没有任何内容可以忽略。它正在等待输入要忽略的内容。有些人会使用它在"return 0;"之前暂停程序。
相关文章:
- 在while循环中输入带有std::cin的字符串后,控制台会输出大量胡言乱语
- 在C++中使用Cin,我如何在1行中输入
- 为什么无论你输入什么,这"while(cin.get(str,3))"只运行一次?
- cin 的十进制输入验证?
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 从 cin 读取不会返回整个输入字符串
- CIN 仅在输入非数字值时跳过下一个 CIN
- 当输入在带有空格的单行中给出时,cin 如何在 while 循环中工作?
- C++ 限制或使用户输入不可见 (std::cin)
- 为 c++ cin 上的输入数无效生成错误消息
- 从 cin 获取 c++ 中结构中多个枚举的输入
- 为什么 std::cin 不提示用户输入?
- C++ CIN 值返回 0 而不是输入值
- 为什么从 std::cin 读取输入后右括号字符的值有时不是")"?
- 为什么不能通过在错误输入后设置 std::cin.clear() 来使用 std::cin?
- :CIN 不断打印用户在每次循环后输入的内容
- 设置输入(CIN)的超时
- 如何将输入(CIN)字符的用户转换为ASCII代码
- 不能在一行中输入 (cin) 超过 10 个整数,以空格分隔到数组中
- 函数结构数组输入cin问题