在C ++中验证cin是正双

时间:2014-04-29 21:12:23

标签: c++ validation exception-handling

我从this question实施了一个解决方案,但它有点小问题。如果input中没有空格,这似乎只能起作用。我需要使用getline来解决一些问题吗?谢谢!

void numericValidation(double input)
{
        while(cin.fail())
        {
            cout << "Invalid Input. Please input a numerical value above zero." << endl;
            cin.clear();
            while(cin.get() != '\n' );
            cin >> input;
        }
}

double test;
cin >> test;
numericValidation(test); // Now I type: 1 2345 in the console (including the space)
// no error message is sent

cout << test << endl; // this prints 1

0 个答案:

没有答案