2017-02-19 45 views
-2

Im очень новые для C++ и пытаюсь написать простую игру, чтобы узнать некоторые из основной механики и у меня возникают проблемы с моим кодом,Если функция и CIN

Как определить функцию WantToPlay так, что, когда игрок вводит «да», он отвечает фантастически, а «нет» отвечает на boooo?

В моем текущем коде отображается ошибка, которую должен иметь тип WantToPlay типа bool, но я не уверен, как использовать логическую функцию для ее исправления?

Спасибо!

using std::cout; 
using std::cin; 
using std::endl; 
using std::string; 


string leader; 
string WantToPlay; 

int main() 
{ 
    std::cout << "Dungeon Master: Welcome to my dungeon, traveller! What is   your name?" << std::endl; 
cin >> leader; 
cout << "Dungeon Master: Well hello, " << leader << " I have a little quest for you if you're interested?" << endl; 
cout << "(Please enter ""yes"" or ""no"")" << endl; 


cin >> WantToPlay; 

if (WantToPlay = "yes") 
    cout << "Fantastic!" << endl; 
else if (WantToPlay = "no") 
    cout << "boooo" << endl; 




return 0; 


} 
+2

'WantToPlay =" yes "' -> 'WantToPlay ==" yes "' – user4581301

+0

Включить больше предупреждений компилятора. –

ответ

2

вам нужно использовать оператор оператор компаратора равенства. "==" Что вы делаете, это назначение, а не сравнение.

+1

Эта вещь называется «оператором равенства». Компаратор [что-то другое] (https://en.wikipedia.org/wiki/Comparator) ;-) – zett42

+0

Вы правы. моя вина. – JAlan

-1

Знаете ли вы, что разница между «=» и «==»? Проверьте инструкцию if и исправьте ее. Совет: вы не можете использовать назначение в условии if.

+1

Ну, вы _can_ используете назначение в условии if, но это не дает того же результата, что и тест равенства. – ForceBru

+0

imho низкое качество, потому что это должен быть ответ, но это вопрос + неправильный оператор – user463035818

+0

да, но присваивание в случае, если условие не вернет значение bool, которое может распознать :), но при большой суммарной проблеме в этом случае используется «= «вместо« == » – darvark

0

(WantToPlay = «Да») означает присвоение строковое значение «Да» в строковой переменной WantToPlay

Поскольку вы сравниваете значение переменной с «Да», вы должны использовать «== ", потому что (WantToPlay ==" Да ") означает, что строковое значение« Да »является тем же, что и значение в строковой переменной WantToPlay.