我有以下if语句以确保日输入有效。但是,如果某人输入无效的两天,则只保留该值。在继续之前,如何确保日期有效?一个循环?
cin>>date.day;
if((date.day>31) || (date.month<1))
{
cout <<"Please input a valid day."<< endl;
date.day = 0;
cin>>date.day;
}
答案 0 :(得分:1)
使用do
while
结构:
do {
cout <<"Please input a valid day."<< endl;
date.day = 0;
cin>>date.day;
if (cin.fail()) {
cin.clear();
cin.ignore(1024, '\n');
}
} while(cin.fail() || date.day > 31 || date.day < 1);
答案 1 :(得分:0)
您正在寻找的是while
循环:
cin>>date.day;
while((date.day>31) || (date.month<1))
{
cout <<"Please input a valid day."<< endl;
date.day = 0;
cin>>date.day;
}