我修改了原始代碼,前兩個無效輸入提示正常工作。當我在這個提示符中執行相同的邏輯來開始一個新遊戲時,我的程序將無法識別無效輸入,並且輸入任何鍵將啓動一個新遊戲。無效輸入後重新提示用戶-C++
void newGame()
{
char newGameChoice = 'a';
cout << "\n--------------------------------------------------------------------------------" << endl;
cout << "Press N to play a new game\n";
cout << "Press X to exit\n\n";
cout << "--------------------------------------------------------------------------------" << endl;
cin >> newGameChoice;
newGameChoice = toupper(newGameChoice);
if (newGameChoice == 'N');
{
char userIn = 'a';
char c = 'a';
game(userIn, c);
}
while (newGameChoice != 'N' || 'X')
{
cout << "--------------------------------------------------------------------------------";
cout << "\n Invalid input. Please try again.\n" << endl;
cout << "--------------------------------------------------------------------------------" << endl;
newGame();
}
}
請提供更短的代碼示例 – Hcorg
不相關的問題,但...你真的打算爲無窮遞歸嗎?通過沒有'start()'調用本身,而是將'start()'(在'main()'內)的調用放在一個無限循環中,您可以獲得相同的效果,並獲得更好的整體結果。 – mah
你試過gdb嗎? – Brahim