I опубликовал вопрос о том, как получить пользовательский ввод, такой как YES или NO, для управления потоком программы, используя операторы if else, я получил ответ, и теперь я на шаг ближе к созданиюэта работа, однако возникла другая проблема, мне действительно нужно разрешить несколько входов, например вот что я пытаюсь:
if (input == ("YES" || "yes" || "y" || "Yes" || "Y"))
{
cout << "you said yes" << endl;
}
else if (input == "NO", "no", "n", "No","N")
{
cout << "you said no" << endl;
}
else
{
cout << "ERROR!!!" << endl;
}
Кирилл Киров опубликовал этот код, который может помочь:
if( std::string::npos != input.find( "no" ) )
но я не мог заставить его работать, и Роджер Пэйт предложил это:
if (prompt && cin.tie()) {
*cin.tie() << prompt << (default_yes ? " [Yn] " : " [yN] ");
однако я никогда не пробовал это, поскольку его сложность далеко за пределами моего понимания.я надеялся на решение, которое мог бы понять начинающий программист, или, может быть, я просто очень медленный ученик
РЕДАКТИРОВАТЬ: Я сделал эту модификацию, но она все равно не работает лучше, чем раньше, если я дамв неправильном случае он переходит к другому (ошибка), и нет места, где можно добавить больше слов (например, НЕТ, НЕТ, НЕТ):
cout << "\nYES or NO" << endl;
string input ="";
cin >> input;
if ( std::string::npos != input.find( "yes" ) )
{
cout << "you said yes" << endl;
}
else if ( std::string::npos != input.find( "no" ) )
{
cout << "you said no" << endl;
}
else
{
cout << "ERROR!!!" << endl;
}