如何检查用户给出的输入值不包含任何字符?

时间:2016-01-14 09:28:19

标签: c++ char double

我想将值存储为double(例如1234567890)但是当用户输入任何字母(例如12345a6789)时,我的程序会挂起。如何检查输入值是否合法?

double num;
cout<< "Enter the number:";
cin>>num;

//How to check?
if( num is illegal )
{
cout << "Error";
return;
}
else
{
//code
}

2 个答案:

答案 0 :(得分:2)

您可以将输入值设为string,然后使用std::stod转换为doublestd::stodinvalid_argument exception可以进行转换。

答案 1 :(得分:1)

如果输入正确,则该数字无法说明。相反,你应该检查输入操作本身是否失败:

double num;
cout<< "Enter the number:";
if(!(cin>>num)) {
    // invalid input ...
}