【发布时间】:2020-12-29 01:42:01
【问题描述】:
我是 C++ 的新用户,但遇到了一个问题。
如果 int 变量“x”的输入不是数字,那么 c++ 似乎会跳过与 char 变量“y”关联的 cin。我尝试使用 cin.ignore 和 cin.clear,但它们似乎不起作用。当 int 'x' 的值不是数字(例如 'a' '*' '')时,关于如何使程序仍然询问 char 'y' 的值的任何想法?
#include <iostream>
using namespace std;
int main()
{
int x;
char y;
cout << "num: ";
cin >> x;//int input
cout << endl;//blank line
cout << "char: ";
cin >> y;//char input
cout << endl;//blank line
return 0;
}
【问题讨论】:
-
我很惊讶我在 5 秒内找不到此副本...如果无法提取,则流 (
cin) 将处于失败状态,并且任何进一步提取也会失败(直到你clear()那个状态)。我会进一步看...编辑:也许Correct way to use cin.fail() 可能会有所帮助。