cin.clear() 不允许我进行新输入
cin.clear() doesn't allow me to make new input
当我执行此代码并输入字符串(字符)n
时,即使我调用clear()
,也不允许我进行新输入。程序完成,我无法在 p
中输入值。
#include <iostream>
#include <string>
#include <ios>
#include <vector>
#include <iomanip>
#include <algorithm>
using namespace std;
int main()
{
int n,p;
cin >> n;
cin.clear();
cin >> p;
return 0;
}
当您输入一串字符并且流无法提取这些字符时,您必须ignore
剩余字符直到下一行。这是使用 ignore
完成的,但最大字符数作为要忽略的数量,'n'
作为我们的分隔符。您还必须检查输入是否成功:
if (!(std::cin >> n) || !(std::cin >> p))
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
}
缓冲区
中可能还有其他字符需要刷新。尝试使用cin.ignore()
和cin.clear()
。
相关文章:
- 如何在输入新内容 c++ 之前删除文件中的所有内容
- 静态堆栈函数不会 1) 输入第一个元素 2)添加新元素时识别旧元素
- 如何输入数组的元素,每次获得新元素时,我们将其放在数组的中间?
- 如何在C++中将构造函数的新输入推回构造函数的默认输入?
- 我想知道为什么"std::unique_ptr<int> foo(新 int)"是合法的,因为"std::<int>unique_ptr"要求输入参数类型应该是"int"?
- 多个输入输入 for 循环
- 当我输入一个字母时,cin 输入(输入是一个 int),而不是打印错误一次,它打印正确一次,然后在循环的其余部分打印 i
- 将输入输入到 c++ 数组时出现运行时错误
- 它不会打印出基于用户输入 c++ 输入的任务
- 将用户输入验证为整数:用户必须两次输入输入
- 是否可以将输入输入作为参数
- C 必须将输入输入两次
- 在C++程序运行时输入输入值 (./filename.out)
- 即使我做了>> cin ,也不让我输入输入
- 在没有用户输入输入的情况下中断while循环
- cin.有限制地忽略,继续丢弃新的输入
- visual将c++ Gui中的输入输入到另一个c++程序中
- 在C中输入输入后,输出窗口关闭
- 将Python的输入输入到c++程序中
- 带空格的输入输入所有循环