尝试创建一个while循环,重新询问输入正确的输入。在这种情况下,正确的输入需要是一个数字。当我测试并输入非数字答案时,它结束程序。 while循环不起作用。
if (variableQuestionsVf == "Yes" || variableQuestionsVf == "yes")
{
cout << "Input final velocity (in m/s): " ;
while (cin >> finalVelocity)
{
istringstream s(sVf);
s >> value;
if (value <= 0 || value >= 0) //Validating input for final velocity
break;
cout << "Please enter final velocity (in m/s): " ;
}
}
有更简单的方法吗?
答案 0 :(得分:0)
我认为您错误地验证了输入。尝试做这样的事情:
#include <iostream>
#include <limits>
int main()
{
int x;
std::cin >> x;
while(std::cin.fail())
{
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(),'\n');
std::cout << "Bad entry. Enter a NUMBER: ";
std::cin >> x;
}
}