开发者

How do I check the input data type of a variable in C++?

I have one doubt about how to check the data type of input variables 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开发者_StackOverflow中文版 to check please help me 
}


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.


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;
…


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

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜