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ステートメントで1つの小さな問題を抱えています。ユーザーがintのタイプを入力している限り、ループは想定どおりに動作しますが、任意の種類の文字列(45r、rts、3e5など)が入力されると、ループはユーザー入力の取得を停止し、無限にスパイラルします。 ing)無効な選択...そしてあなたの選択...何度も何度も。文字列の場合は\nを削除するために.ignore()を使用する必要があると思いますが、その方法がわかりません。私は正しい方向に進んでいますか?