2017-02-19 73 views
-2

林很新的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條件中使用賦值。

+1

那麼,你可以在if條件中使用賦值,但是它不會給出與平等測試相同的結果。 – ForceBru

+0

imho低質量,因爲它應該是答案但是是個問題+錯誤的語句 – user463035818

+0

是的,但是如果條件賦值不會返回任何可以識別的bool值:)但是在這個case中的大概題是使用「=」 「而不是」==「 – darvark

0

(WantToPlay =「是」)指分配字符串值「是」字符串變量WantToPlay

由於正在使用「是」,則應該使用「變量的值進行比較== 「,因爲(WantToPlay ==」Yes「)意味着字符串值」Yes「是相同作爲字符串變量WantToPlay中的值。