У меня есть некоторые проблемы с зацикливанием. Я пытаюсь сделать несколько заявлений. Код ниже.
int MenuSelect () {
cout << endl;
cout << YELLOW << "Enter 1 for info" << endl;
cout << " " << endl;
cout << "Enter 2 to Start" << endl;
cout << " " << endl;
cout << "Enter 3 to view settings" << endl;
cout << " " << endl;
cout << "Enter 4 to quit" << endl;
int selected = 0;
string input;
cin >> input;
if (stringstream(input) >> selected) {
return selected;
}
else {
return -1;
}
return 0;
};
int Menu(int) {
int selected {};
while ((selected = MenuSelect()) == 1) {
printmessage();
}
if (selected == 3) {
cout << "Current Settings" << endl;
somefunction();
}
else if (selected == 2) {
cout << "Starting Game..... " << endl;
}
else if (selected == 4) {
cout << "Exiting....." << endl;
exit (3);
}
else {
cout << "Invalid Entry" << endl;
exit (3);
}
cout << "Below is the Deck of cards and you will get to choose 5 cards to play with. Choose wisely." << endl;
return 0;
};
Таким образом, как вы можете видеть, пользователь может видеть меню, тогда операторы if и else выполняют свою работу. На данный момент мне удалось l oop выбрать первое меню, поэтому, если пользователь введет 1, оно напечатает сообщение, а затем l oop вернется в меню. То, что я хочу, это также l oop 3 - текущие настройки и, если пользователь вводит неправильный номер. Я пытался это сделать, но не могу этого сделать.