2016-08-12 1 views
0

私の弟は現在どのようにコードを記述していますかC++、およびさまざまな方法をテストする方法として配列を使用することができます。コンピュータが乱数を生成し、その数に基づいて(配列に格納された)特定の感情を出力するプログラムを開始しました。しかし何らかの理由で、出力が行われるコードのセクションは、私が提案した方法で動作したくありません。 、私は過去に私のために働いていると確信しているが、いくつかのために、私はそれが書かれるべきと思ったエラーC2679: "バイナリ '<<': 'std :: string'型の右辺オペランドを取る演算子が見つかりません(または許容される変換はありません)"

の方法は、「c​​outの< < < <感情[x]は< <てendl 『私は』」でしたコンピュータがそれを受け入れない理由。私は実際にC++でしばらくコード化していないので、多分何かが変わってしまったか、忘れてしまったのです。

これはおそらく私がすでに捕らえたはずのスーパーシンプルで愚かなものですが、私はそれを見ることができません。ここでは、コードの残りの部分があります。問題がさらに上にある場合です。

#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_私は完全に#を含むことを忘れていた#を含む。ありがとうございました。 – AlexanderPepper

+0

私たちが助けてくれてうれしいです:)あなたの質問に答えたら私の答えを受け入れてください。 –

関連する問題

 関連する問題