bool showMenu(romanType roman){
cout << endl;
cout << "Just enter a number to choose an option" << endl;
cout << "1: Print the Roman Numeral" << endl;
cout << "2: Print the decimal value" << endl;
cout << "3: Enter a new Roman Numeral" << endl;
cout << "4: Quit the program" << endl;
cout << endl;
while (true) {
cout << "Your choice:" << endl;
int input;
cin >> input;
if (input == 1) {
cout << roman.getRomanString() << endl;
} else if(input ==2) {
cout << roman.getDecimalValue() << endl;
} else if(input == 3) {
return true;
} else if(input == 4) {
return false;
} else {
cout << "Invalid selection, please make a valid selection." << endl;
}
}
}
下车,所以总的来说这很好用,我的最后一个 else 语句只是有一个小问题。只要用户输入了一个 int 类型,循环就会执行它应该做的事情,但是如果输入任何类型的字符串(即 45r、rts、3e5),循环就会停止接受用户输入并无限循环,cout( ing)无效的选择...和您的选择...一遍又一遍。我想我需要使用 .ignore() 在字符串的情况下删除 \n ,但我不知道该怎么做。我在正确的轨道上吗?