简体   繁体   中英

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 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.

此外,如果我的内存服务,以下快捷方式应该工作:

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM