Hri*_*sto 18 c++ validation double cin
我如何检查输入是否真的是双倍的?
double x;
while (1) {
cout << '>';
if (cin >> x) {
// valid number
break;
} else {
// not a valid number
cout << "Invalid Input! Please input a numerical value." << endl;
}
}
//do other stuff...
Run Code Online (Sandbox Code Playgroud)
上面的代码无限输出Invalid Input!语句,因此它不会提示输入其他内容.我想提示输入,检查它是否合法...如果它是双,继续......如果它不是双,再次提示.
有任何想法吗?
cas*_*nca 14
试试这个:
while (1) {
if (cin >> x) {
// valid number
break;
} else {
// not a valid number
cout << "Invalid Input! Please input a numerical value." << endl;
cin.clear();
while (cin.get() != '\n') ; // empty loop
}
}
Run Code Online (Sandbox Code Playgroud)
这基本上清除了错误状态,然后读取并丢弃在前一行输入的所有内容.
| 归档时间: |
|
| 查看次数: |
23594 次 |
| 最近记录: |