Error C2679: "binary '<<': no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)"
<p>my little brother is currently learning how to code in C++, and as a way to test different ways Arrays can be use, he started a program that would have the computer generate a random number, then output a particular emotion (stored in an array) based on that number.  For some reason however, the section of code where the output goes doesn't want to work the way I suggested.</p>

<p>The way I thought it should be written was 'cout &lt;&lt; "I'm" &lt;&lt; emotion[x] &lt;&lt; endl;', which I'm sure has worked for me in the past, but for some reason the computer won't accept that.  I haven't actually coded in C++ for a while, so maybe something has changed or I forgot how 'cout' works.</p>

<p>It's probably something super simple and stupid that I should have caught already, but I just can't see it.  Here's the rest of the code, in case the problem is somewhere further up the line.</p>

<pre><code>#include &lt;iostream&gt;
#include &lt;ctime&gt;
#include &lt;fstream&gt;

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 &lt;&lt; "I'm " &lt;&lt; emotion[x] &lt;&lt; endl;

        system("PAUSE");
}
</code></pre>