错误 C2679:二进制“<<”:未找到采用“std::string”类型右侧操作数的运算符(或没有可接受的转换)
Posted
技术标签:
【中文标题】错误 C2679:二进制“<<”:未找到采用“std::string”类型右侧操作数的运算符(或没有可接受的转换)【英文标题】:error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'std::string' (or there is no acceptable conversion) 【发布时间】:2014-03-28 22:12:24 【问题描述】:这是我的代码,我该如何解决这个错误?
#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)
【问题讨论】:
在提交问题之前,请先使用google查看是否已经存在问题和答案。对于几乎所有标准错误代码,已经有了答案。您只能通过在搜索栏中添加 site:***.com 来使用 google 搜索此站点。 在不参考原件的情况下标记为重复件也同样没有意义。这是谷歌搜索中的第一个结果。 【参考方案1】:你忘了#include <string>
使用 std::string
而不包含它的标头适用于某些编译器,这些编译器将 <string>
的部分间接导入到它们的 <iostream>
或其他标头中,但这不是标准的,不应依赖。此外,当您尝试输出字符串时,它们经常会中断,因为它们只包含实现的一部分并且缺少实现 operator<<
的部分。
【讨论】:
我包含了以上是关于错误 C2679:二进制“<<”:未找到采用“std::string”类型右侧操作数的运算符(或没有可接受的转换)的主要内容,如果未能解决你的问题,请参考以下文章
错误 C2679:二进制“[”:未找到采用右手操作数的运算符
使用 QDataStream 序列化自定义类导致 C2679 错误
搜索#N/A!在工作表中,如果找到则为 msgbox,未找到时为其他子
错误! 'float' 和 'const char [2]' 类型的无效操作数到二进制 'operator<<' [关闭]
C++中error C2679: binary '>>':no operator defined which takes a right-hand operand of t