-1

日の入力が有効であることを確認するために、次のifステートメントがあります。ただし、誰かが無効な日を2回入力した場合、その値は保持されます。先に進む前に、日付が有効であることを確認するにはどうすればよいですか?whileループ?

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

2 に答える 2

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);
于 2013-03-11T04:51:32.647 に答える
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;
}
于 2013-03-11T04:50:27.283 に答える