如何在C ++中检查变量的输入数据类型?

时间:2010-04-19 10:33:38

标签: c++

我对如何在C ++中检查输入变量的数据类型存在疑问。

#include<iostream>
using namespace std;
int main()
{
    double a,b;
    cout<<"Enter two double values";
    cin>>a>>b;
    if()        //if condition false then
        cout<<"data entered is not of double type"; 
        //I'm having trouble for identifying whether data
        //is double or not how to check please help me 
}

3 个答案:

答案 0 :(得分:7)

如果输入无法转换为double,则failbit将设置为cin。这可以通过调用cin.fail()进行测试。

 cin>>a>>b;
 if(cin.fail())
 { 
     cout<<"data entered is not of double type"; 
 }

更新:正如其他人所指出的那样,您也可以使用!cin代替cin.fail()。这两者是等价的。

答案 1 :(得分:1)

此外,如果我的记忆服务,则以下快捷方式应该有效:

if (! (cin>>a>>B)) { handle error }

答案 2 :(得分:1)

那段代码无可救药。

  1. iostream.h不存在。请改用#include <iostream>。其他标准标题也是如此。
  2. 您需要在代码中导入名称空间std(...)。这可以通过将using namespace std;放在main函数的开头来完成。
  3. main 必须返回类型int,而不是void
  4. 关于您的问题,您可以通过以下代码检查读取值是否成功:

    if (!(cin >> a))
        cout << "failure." << endl;
    …