错误C2679:“binary'<<':找不到运算符,它采用'std :: string'类型的右手操作数(或者没有可接受的转换)”

时间:2016-08-12 04:08:32

标签: c++ windows visual-studio

我的小弟弟目前正在学习如何用C ++编写代码,并且作为一种测试阵列可以使用的不同方式的方法,他启动了一个程序,让计算机生成一个随机数,然后输出一个特定的情感(存储在一个数组)基于那个数字。但是出于某种原因,输出的代码部分不希望按照我的建议工作。

我认为应该写的方式是'cout<< “我是”<<情绪[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 :(得分:3)

正如你想的那样,确实是一个简单的错误。您需要#include <string>才能使其按预期工作并Here Is Why

#include <cstdlib>srand以及Here is why you may not need it可能还需要rand

相关问题