验证用户输入的数字

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