Итак, здесь есть ошибка, вы проверяете переменную again
, прежде чем задать вопрос. Очевидно, что вы должны проверить переменную после , когда вы задаете вопрос.
Также вам нужно использовать ignore
после того, как вы получите ответ на вопрос, потому что все еще будет ввод в буфере .
char again; // to hold y or n input
// Asks user if they want to play again
cout << "Would you like to play again? (y/n):";
cin >> again;
// ignore any remaining input
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
if (again == 'y'){
...
} else if (again == 'n') {
cout << "Press any key to continue." << endl;
cin.ignore(1);
}
Однако мне кажется, что код, который вы разместили, не является реальным кодом, поэтому, если это не имеет смысла, опубликуйте еще немного кода.