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)”重复输出到控制台。
我怎么能改变它,以便在输入字符或字符串时不会启动无限循环,而是按照预期循环并允许我再次输入?
答案 0 :(得分:0)
deparmentNo(我假设)是一个Int,你有转换问题。正如其他人所提到的,你应该清除std :: cin的错误标志。此外,你可能不应该直接进入一个int而是一个字符串,然后尝试转换为int。转换尝试的结果(成功与否)将是检查有效条目的附加标准