验证用户输入的数字
Validating user input of a number
正在尝试创建一个 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): " ;
}
}
有没有更简单的方法?
我认为您对输入的验证不正确。尝试做这样的事情:
#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;
}
}
Source
正在尝试创建一个 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): " ;
}
}
有没有更简单的方法?
我认为您对输入的验证不正确。尝试做这样的事情:
#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;
}
}
Source