C ++无限循环重复

时间:2017-11-16 22:56:02

标签: c++

int departmentNo;
bool depNumIncorrect = false;
do
{
    depNumIncorrect = false;
    cout << "Please enter your department number... ( 1 / 2 / 3 )" << endl;
    cin >> departmentNo;
    if (departmentNo < 1 || departmentNo > 3)
    {
        cout << "Invalid Entry." << endl;
        depNumIncorrect = true;
    }
} while (depNumIncorrect == true);

每当我输入正确的输入(1/2/3)时,代码工作正常并继续而不循环。每当我输入一个不正确的整数时,代码就会循环播放。但是当我输入一个字符或一个字符串时,它会将代码置于无限循环中。 “请输入您的部门编号...(1/2/3)”重复输出到控制台。

我怎么能改变它,以便在输入字符或字符串时不会启动无限循环,而是按照预期循环并允许我再次输入?

1 个答案:

答案 0 :(得分:0)

deparmentNo(我假设)是一个Int,你有转换问题。正如其他人所提到的,你应该清除std :: cin的错误标志。此外,你可能不应该直接进入一个int而是一个字符串,然后尝试转换为int。转换尝试的结果(成功与否)将是检查有效条目的附加标准