Почему этот цикл не работает? Он создает ошибку сегментации, когда ответ не является y или n, но я думал, что справился с проблемой, и это не сработало. Как я могу это исправить, так что ошибка сегментации прекращается? Я смущен, почему это не сработает.Почему этот цикл не работает?
int main()
{
string yes = "y";
string uyes = "Y";
string no = "n";
string uno = "N";
string answer = " ";
do
{
system("CLS");
cout << "Welcome to the Red Fern Shipping Company where we ship your packages your way!\n";
cout << "Do you want to ship a parcel? Y or N?\n";
cin >> answer;
do
{
if (answer == no || answer == uno)
{
cout << "Thank you! Come again!\n";
system("PAUSE");
return 0;
}
else if (answer == yes || answer == uyes)
{
break;
}
else
{
cin.clear();
cin.sync();
cout << "That answer is invalid and cannot work. Please enter a 'y' for yes or 'n' for no.\n";
}
} while (answer != yes && answer != uyes && answer != no && answer != uno);
} while (answer == yes || answer == uyes);
system("PAUSE");
return 0;
}
«Как я могу это исправить?» Используйте отладчик – bolov
@MichielUitHetBroek Brilliant! Не могу поверить, что я пропустил это ... ха-ха спасибо! – justyournormalguy13
@ justyournormalguy13 действительно вам следует научиться использовать отладчик. Вы бы нашли ошибку в кратчайшие сроки. Это сэкономит вам много и много часов царапин на голове и задает вопросы о SO, которые закрыты и закрыты. ** Научитесь использовать отладчик ** – bolov