Как использовать оператор if else - PullRequest
0 голосов
/ 21 сентября 2018

Сегодня я хочу проверить, набирает ли пользователь слово «да» в консольном приложении, затем функция продолжится, однако я не могу этого сделать.(Я новый человек, извините)

Любая помощь в этом?Я знаю, когда тестирую переменную типа .. int x = 14, и если (a <14) что-то печатает ... но вместо числа я хотел бы попробовать с текстом. </p>

Вот исходный код:

int main()
 {
   char a = yes;
   char b = no;
   cout << "hi, press yes to start or no to cancel";
   cin >> a;

  if (a == yes)
   { 
  cout << "Cool person";
   }
  else if(b == no)
   {
  cout << "not a cool person";
  }
}

Я продолжаю получать "да" не определено в области.Любая помощь будет оценена.Спасибо!

1 Ответ

0 голосов
/ 21 сентября 2018

Как минимум, в вашем коде существуют следующие проблемы:

  • Токены yes и no являются идентификаторами.Если бы вы хотели, чтобы они были символами, это были бы 'yes' и 'no.За исключением того, что они , а не символов, так как они слишком длинные.Таким образом, они, вероятно, должны быть строками типа "yes" и "no".

  • Переменная b здесь совершенно бесполезна, вы должны иметь одну переменную дляполучение информации от пользователя и проверка ее по множеству возможных значений.Также целесообразно выбирать значимые имена переменных.

  • Вы не включаете необходимые заголовки и не используете правильное пространство имен для функций и типов std (либоявно указав std:: каждому или using namespace std для всех).

Имея это в виду, попробуйте следующую программу в качестве отправной точки для вашего дальнейшего образования:

#include <iostream>
#include <string>

int main() {
    std::string userInput;

    std::cout << "Hi, enter yes to start or no to cancel: ";
    std::cin >> userInput; // probably better: std::getline(std::cin, userInput);

    if (userInput == "yes") {
        std::cout << "Cool person\n";
    } else if (userInput == "no") {
        std::cout << "Not a cool person\n";
    } else {
        std::cout << "Hey, can't you read? I said yes or no :-)\n";
    }
}
...