2016-08-12 34 views
0

我的小弟目前正在學習如何編碼C++,並且爲了測試數組可以使用的不同方式,他創建了一個程序,讓計算機生成一個隨機數,然後根據該數字輸出特定的情緒(存儲在數組中)。但是,出於某種原因,輸出結果的代碼段不想按照我所建議的方式工作。錯誤C2679:「binary'<<':找不到操作符找到'std :: string'類型的右手操作數(或者沒有可接受的轉換)」

我認爲應該把它寫的樣子「清點< <‘我’< <情感[X] < < ENDL;」,我敢肯定,爲我在過去的工作,但對於一些電腦不會接受的原因。我實際上沒有用C++編寫一段時間,所以可能有些改變了,或者我忘了cout是如何工作的。

這可能是超級簡單和愚蠢的,我應該已經抓住,但我不能看到它。這是代碼的其餘部分,以防出現問題。

#include <iostream> 
#include <ctime> 
#include <fstream> 

using namespace std; 


string emotion[6]; 

int main() { 
     emotion[0] = "Happy"; 
     emotion[1] = "Sad"; 
     emotion[2] = "Angry"; 
     emotion[3] = "Fearful"; 
     emotion[4] = "Disgusted"; 
     emotion[5] = "Suprised"; 

     srand(time(NULL)); 

     int x; 
     x = (rand() % 6); 

     cout << "I'm " << emotion[x] << endl; 

     system("PAUSE"); 
} 
+1

「電腦無法接受」是什麼意思?編譯器錯誤?運行時錯誤?意外的行爲? –

+0

在程序中添加cstdlib。它會工作。 ,你能告訴你想要什麼輸出嗎? – Abhishek

回答

3

確切如你所想,確實是一個簡單的錯誤。您需要#include <string>才能像您期望的那樣工作,並且需要Here Is Why

對於srandrandHere is why you may not need it,您可能還需要#include <cstdlib>

+0

_facepalm_我完全忘了#include 。謝謝。 – AlexanderPepper

+0

很高興我們能夠幫助:)請接受/ upvote我的答案,如果它回答你的問題。 –

相關問題