2010-04-19 97 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

相關問題