c ++做while循环问题

时间:2013-03-11 04:47:54

标签: c++

我有以下if语句以确保日输入有效。但是,如果某人输入无效的两天,则只保留该值。在继续之前,如何确保日期有效?一个循环?

cin>>date.day;
    if((date.day>31) || (date.month<1))
      {
          cout <<"Please input a valid day."<< endl;
          date.day = 0;
          cin>>date.day;
      }

2 个答案:

答案 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;
}