为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C ++中将用户输入验证为double?

如何在C ++中将用户输入验证为double?

C++
ITMISS 2019-08-23 10:09:09
如何在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
  }}

这基本上清除了错误状态,然后读取并丢弃在前一行输入的所有内容。


查看完整回答
反对 回复 2019-08-23
?
侃侃无极

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;
    }}


查看完整回答
反对 回复 2019-08-23
  • 3 回答
  • 0 关注
  • 565 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信