2015-11-05 81 views
-3

我需要檢查,如果他們輸入高興,傷心或生氣時提示: 輸入一個心情(快樂,悲傷,生氣) 這是我爲它至今 計數代碼= 0; 一段時間(數< 1){C++檢查,如果用戶輸入一個有效的答案

cout << ", How are you feeling today? (happy,sad,mad)" << endl; 

    cin >> mood; 

    if (mood == sad){ 

     cout << "im sorry you're feeling sad" << endl; 

      count++; 
    } 

    else if (mood == happy) { 

     cout << "I'm glad you're feeling happy!" << endl; 

      count++; 
    } 

    else if (mood == mad){ 
     cout << "Don't be angry, there's so many happy things in life!" << endl; 
    } 
    else{ 

     cout << " invalid input " << endl; 

     count = 0; 
    } 

    } 

,但如果我把高興,傷心或生氣它只是在無效的輸入。 我也試過爲他們聲明字符串變量,如 string happy = happy; string sad = sad; string mad = mad;

+1

看起來您正在混淆變量名和文本字符串。他們可能是同一個詞,但它們是無關的。 (例如,除非mad是一個值爲「mad」的std :: string)。 –

+1

這是如何編譯的?發佈一個MCVE。 –

+0

你應該使用雙引號來表示一個字符串。做到這一點,一切都應該在世界上。直到下一個錯誤。 – user4581301

回答

-4

兩件事情:

  1. 確保您初始化您的字符串的正確

    string happy = "happy"; 
    
  2. 嘗試使用string.compare()而不是==

    mood.compare(happy); 
    

有關更多詳細信息,請參見:http://www.cplusplus.com/reference/string/string/compare/

+0

唯一錯誤的是'String'應該是小寫字母。否則上面的代碼肯定是C++ – jsherman256

+0

'=='很好......正如我所說的,這不是Java。 –

相關問題