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.
iostream.h
doesn’t exist. Use#include <iostream>
instead. The same goes for other standard headers.- You need to import the namespace
std
in your code (…). This can be done by puttingusing namespace std;
at the beginning of yourmain
function. main
must have return typeint
, notvoid
.
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 }
精彩评论