我从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