【发布时间】:2021-01-28 19:52:58
【问题描述】:
我的主菜单代码运行不正常。我不知道为什么当用户输入时 do while 循环会永远重复,bool 设置为 true,并且它可以工作,但是如果用户输入了错误的字符,循环会永远继续。并显示“无效字符。请重试。”并且不允许用户输入。
void mainmenu() {
bool wrong = false;
system("cls");
cout << "Hello! Welcome to the menu. ";
cout << "\n\n";
cout << "What would you like to do?\n";
cout << "Options:\n";
cout << "1. Password generator\n";
int choice{ 0 };
do {
cin >> choice;
if (choice == 1) {
wrong = true;
passgen();
break;
}
else {
cout << "Invalid character. Please try again." << endl;
cin.clear();
}
} while (!wrong);
}
注意-我没有在这个sn-p代码中包含#include,但错误在循环重复内。
【问题讨论】:
-
什么会阻止您的
while循环,如果用户输入无效的内容,您会更新它吗?
标签: c++ loops while-loop