如何在C ++中验证用户输入是双重的? [英] how do I validate user input as a double in C++?

查看:150
本文介绍了如何在C ++中验证用户输入是双重的?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何检查输入是否为双精度型?

How would I check if the input is really a 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!语句,因此它不提示输入另一个输入。我想提示输入,检查它是否合法...如果它的双,继续...如果它不是一个双,提示。

The above code infinitely outputs the Invalid Input! statement, so its not prompting for another input. I want to prompt for the input, check if it is legitimate... if its a double, go on... if it is NOT a double, prompt again.

任何想法?

推荐答案

尝试:

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



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

This basically clears the error state, then reads and discards everything that was entered on the previous line.

这篇关于如何在C ++中验证用户输入是双重的?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆