我对如何在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
}
答案 0 :(得分:7)
如果输入无法转换为double,则failbit
将设置为cin
。这可以通过调用cin.fail()
进行测试。
cin>>a>>b;
if(cin.fail())
{
cout<<"data entered is not of double type";
}
更新:正如其他人所指出的那样,您也可以使用!cin
代替cin.fail()
。这两者是等价的。
答案 1 :(得分:1)
此外,如果我的记忆服务,则以下快捷方式应该有效:
if (! (cin>>a>>B)) { handle error }
答案 2 :(得分:1)
那段代码无可救药。
iostream.h
不存在。请改用#include <iostream>
。其他标准标题也是如此。std
(...)。这可以通过将using namespace std;
放在main
函数的开头来完成。main
必须返回类型int
,而不是void
。关于您的问题,您可以通过以下代码检查读取值是否成功:
if (!(cin >> a))
cout << "failure." << endl;
…