tags:

views:

88

answers:

3

I'm currently started learning C++, but i've one doubt about how to check the data type of input variable in 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 
}
+5  A: 

If the input cannot be converted to a double, then the failbit will set for cin. This can be tested by calling cin.fail().

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

Update: As others have pointed out, you can also use !cin instead of cin.fail(). The two are equivalent.

Matthew T. Staebler
+1  A: 

Also, if my memory serves, the following shortcut should work:

if (! (cin>>a>>B)) { handle error }
Little Bobby Tables
A: 

That code is hopelessly wrong.

  1. iostream.h doesn’t exist. Use #include <iostream> instead. The same goes for other standard headers.
  2. You need to import the namespace std in your code (…). This can be done by putting using namespace std; at the beginning of your main function.
  3. main must have return type int, not void.

Concerning your problem, you can check whether reading a value was successful by the following code:

if (!(cin >> a))
    cout << "failure." << endl;
…
Konrad Rudolph
(The numbered points are now fixed as they distracted from the actual question)
MSalters