可能重复:
为什么这个 cin 读数卡住了?
我重载了 istream 运算符 ( istream &operator>>...
),它采用以下格式:
(<x-coordinate>,<y-coordinate>)
我想多次(10)次测试这个,所以写了:
for (int i = 0; i < 10; i++) {
cin >> a;
if (!cin.fail()) { cout << a << endl; }
else { cout << "Invalid input!" << endl; cin.clear(); }
}
编辑:
我现在有以下代码:
for (int i = 0; i < 10; i++) {
cin >> a;
if (!cin.fail()) { cout << a << endl; }
else {
cout << "Invalid input!" << endl; cin.clear();
while (!cin.eof()) { cin.ignore(); } cin.ignore();
}
}
克苏鲁建议忽略。但是,问题是 cin 仍然输出“无效输入!” 运行完上面的代码后:
(3,3) <-- input
(3,3) <-- output
Invalid output! <-- second output
有没有办法可以清除 cin 中的内容?