【发布时间】:2014-01-25 10:04:07
【问题描述】:
用户输入日期,当前经过验证以确保该值介于 1 和 31 之间。
但是,如果他们输入一个非整数值,它只会在无限循环中不断重复错误消息。
我四处寻找答案,但其他提出问题的人似乎都比我更擅长 c++,因此我什至不了解他们的初始代码。
这是代码
void Menu::setDate()
{
date = 0;
std::cout << "Please enter todays date: (as an integer) ";
do
{
std::cin >> date;
if (date > 0 && date < 32)
{
break;
}
std::cout << "Error: Please enter todays date: (as an integer) ";
}
while (true);
}
【问题讨论】:
-
@juanchopanza 但它应该获取输入,检查它,然后在其有效时中断,或者重新获取输入。但它循环。我认为它类似于,即使您不按 Enter,它也会获得输入。
标签: c++ validation loops integer