错误C2679:二进制'<<&# :找不到哪个运算符采用类型' std :: string'的右手操作数(或者没有可接受的转换)

时间:2014-03-28 22:12:24

标签: c++ visual-studio-2012 c++11

这是我的代码,如何修复此错误?

#include "stdafx.h"
#include <iostream>

using namespace std;

int main()
{
    string title = "THE WORLD OF PIRATES";
    cout << title << endl;
    cout << " Welcome to the world of pirates";

    cin.get();

    return 0;
}

错误是

binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion)

1 个答案:

答案 0 :(得分:50)

您忘了#include <string>

使用std::string而不包括它的标题适用于某些编译器,这些编译器将<string>的部分间接导入其<iostream>或其他标题中,但这不是标准的,不应该依赖。此外,当您尝试输出字符串时,它们经常会中断,因为它们只包含实现的一部分,并且缺少实现operator<<的部分。

相关问题