验证号码的用户输入

时间:2015-02-18 21:05:05

标签: c++ validation while-loop

尝试创建一个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): " ;
                        }
                    }

有更简单的方法吗?

1 个答案:

答案 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;
    }
}

Source

相关问题