[英]How can I add a condition to this while loop?
我相對熟悉 c++ 和一般情況下的編程。 我正在努力向我的 while 循環添加一個條件,該循環已經在執行一些數據驗證。
int again;
cout << "Do you want to search again?\n[1] Yes\n[2] No\n\n Please choose your option: ";
cin >> again;
while (!(cin >> again)) {
cout << "Please enter a valid number: ";
cin.clear(); //clears the input
cin.ignore(1000, '\n');// clears 1000 characters of input
}
在驗證工作的同時,正如我上面所說,我正在努力獲得一個條件,要求用戶在一個 while 循環中輸入 1 或 2 作為選項 state。
謝謝你。
有些人可能會發現在主體內包含條件的循環更具可讀性。
int again = 0;
for(;;)
{
std::cout << "Do you want to search again?\n"
"[1] Yes\n"
"[2] No\n\n"
"Please choose your option: ";
std::cin >> again;
if ( std::cin.eof() )
{
std::cerr << "Unexpected end of input.\n";
again = 2; // No, you probably don't want to search again.
break;
}
if ( !std::cin )
{
std::cout << "Please enter a valid number.\n";
std::cin.clear();
std::cin.ignore(1000, '\n');
continue;
}
if ( again == 1 || again == 2)
{
break;
}
std::cout << "Please enter 1 or 2.\n";
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.