我想将值存储为double(例如1234567890)但是当用户输入任何字母(例如12345a6789)时,我的程序会挂起。如何检查输入值是否合法?
double num;
cout<< "Enter the number:";
cin>>num;
//How to check?
if( num is illegal )
{
cout << "Error";
return;
}
else
{
//code
}
答案 0 :(得分:2)
您可以将输入值设为string
,然后使用std::stod
转换为double
。std::stod
会invalid_argument
exception
可以进行转换。
答案 1 :(得分:1)
如果输入正确,则该数字无法说明。相反,你应该检查输入操作本身是否失败:
double num;
cout<< "Enter the number:";
if(!(cin>>num)) {
// invalid input ...
}