我正在尝试制作一个仅允许用户输入0到1的cin。如果用户没有输入这些数字,那么他应该会收到一条错误消息:“请输入0到1。”

但是它不起作用。

我究竟做错了什么?

   int alphaval = -1;
    do
    {
        std::cout << "Enter Alpha between [0, 1]:  ";
        while (!(std::cin >> alphaval)) // while the input is invalid
        {
            std::cin.clear(); // clear the fail bit
            std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n'); // ignore the invalid entry
            std::cout << "Invalid Entry!  Please Enter a valid value:  ";
        }
    }
    while (0 > alphaval || 1 < alphaval);

    Alpha = alphaval;

最佳答案

试试这个:

int alphaval;
cout << "Enter a number between 0 and 1: ";
cin >> alphaval;
while (alphaval < 0 || alphaval > 1)
{
        cout << "Invalid entry! Please enter a valid value: ";
        cin >> alphaval;
}

关于c++ - CIN在一定范围内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23234338/

10-10 17:53