【发布时间】:2018-03-03 14:22:54
【问题描述】:
您好,我正在尝试学习 c++,我想对一个程序进行一些练习。但是我在循环中使用 cout 时遇到问题。
这是我试图从中输出文本的循环。当用户输入一个无效的数字时,它应该说“对不起,再试一次!”
while (datecheck)
{
bool check(false);
if (check)
std::cout<<"Sorry try again!"<<std::endl;
std::cin>>c;
if (c >= 1)
{
if (b == 2 && c <= 28)
datecheck = false;
if (b == 2 && a % 4 == 0 && c <= 29)
datecheck = false;
if (b == 4 || b == 6 || b == 9 || b == 11 && c <= 30)
datecheck = false;
if (c <= 31)
datecheck = false;
}
check = true;
}
当它输出并且我故意让自己处于循环中时它不会输出任何东西
Year: -20
-20
-20
【问题讨论】:
-
您在循环内部通过局部变量的初始化将您的标志设置为 false。然后如果它是真的,你输出。你预计什么时候输出?
-
将
bool check(false);行移出while 循环。check = true;应该是 else 条件的一部分。 -
等等,我很笨。我猜当它重新启动循环并将标志声明为假时。我的错。谢谢大家。
标签: c++ loops while-loop io cout