如何在C ++中将用户输入验证为double?我如何检查输入是否真的是双倍的?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...上面的代码无限输出Invalid Input!语句,因此它不会提示输入其他内容。我想提示输入,检查它是否合法...如果它是双,继续......如果它不是双,再次提示。有任何想法吗?
3 回答
慕的地8271018
TA贡献1796条经验 获得超4个赞
试试这个:
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 }}
这基本上清除了错误状态,然后读取并丢弃在前一行输入的所有内容。
侃侃无极
TA贡献2051条经验 获得超10个赞
一种方法是检查浮点数是否相等。
double x;while (1) { cout << '>'; cin >> x; if (x != int(x)) { // valid number break; } else { // not a valid number cout << "Invalid Input! Please input a numerical value." << endl; }}
- 3 回答
- 0 关注
- 593 浏览
添加回答
举报
0/150
提交
取消