Проблема появляется очень рано:
int ch; // are you sure this should be an int?
cout << "Do you have any extra credit points? (Enter Y/y or N/n)" << endl;
cin >> ch;
cin
ведет себя по-другому на int
типизированных переменных, чем на char
с.Когда вы вводите «y» или «n» на клавиатуре, cin
не будет работать.
Вы можете проверить, не удалось ли cin
, вызвав его метод fail()
, например:
int num;
std::cout << "Enter a number: ";
std::cin >> num;
if (std::cin.fail()) {
std::cout << ":(" << std::endl;
} else {
std::cout << "Your number was " << num << std::endl;
}