2010-04-19 99 views
4

我对如何检查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 
} 

回答

7

如果输入不能被转换为一个双,那么failbit将为cin设置。这可以通过调用cin.fail()进行测试。

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

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

1

而且,如果我没有记错,下面的快捷键应该工作:

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

该代码是无可救药的错误。

  1. iostream.h不存在。改为使用#include <iostream>。其他标准头文件也是如此。
  2. 您需要在代码(...)中导入名称空间std。这可以通过将using namespace std;放在main函数的开头来完成。
  3. main必须有返回类型int而不是void

关于您的问题,您可以检查读取值是否是由下面的代码成功:

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

(编号的点,现在固定的,因为他们从实际问题分心) – MSalters 2010-04-19 14:34:54

相关问题