为什么我不能cout
string
这样:
string text ;
text = WordList[i].substr(0,20) ;
cout << "String is : " << text << endl ;
当我这样做时,我收到以下错误:
错误2错误C2679:二进制'&lt;&lt;' :找不到哪个运算符采用'std :: string'类型的右手操作数(或者没有可接受的转换)c:\ users \ mollasadra \ documents \ visual studio 2008 \ projects \ barnamec \ barnamec \ barnamec.cpp 67 barnamec **
令人惊讶的是,即使这样也行不通:
string text ;
text = "hello" ;
cout << "String is : " << text << endl ;
答案 0 :(得分:222)
您需要包含
#include <string>
#include <iostream>
答案 1 :(得分:11)
你需要以某种方式引用cout的命名空间std
。例如,插入
using std::cout;
using std::endl;
在函数定义或文件之上。
答案 2 :(得分:6)
您的代码存在一些问题:
WordList
未在任何地方定义。您应该在使用它之前定义它。#include <string>
或cout
之前,您需要endl
才能使用字符串类和iostream。string
,cout
和endl
位于std
命名空间中,因此除非您使用std::
,否则无法使用using
作为前缀,无法访问它们{1}}指令首先将它们纳入范围。答案 3 :(得分:1)
以上答案很好,但如果您不想添加字符串include,可以使用以下
ostream& operator<<(ostream& os, string& msg)
{
os<<msg.c_str();
return os;
}
答案 4 :(得分:0)
使用c_str()将std :: string转换为const char *。
cout << "String is : " << text.c_str() << endl ;
答案 5 :(得分:-1)
您无需明确引用std::cout
或std::endl
它们都包含在namespace std
中。 using namespace std
而不是使用范围解析运算符::
每次制作都更容易和更清洁。
#include<iostream>
#include<string>
using namespace std;
答案 6 :(得分:-2)
如果您使用的是Linux系统,则需要添加
rules = (
Rule(LinkExtractor(allow=('/store/apps')),callback="parse_item"),
Rule(LinkExtractor(allow=('/store/apps/details\?')),callback="parse_item")
)
标题下方
如果是Windows,请确保正确放置标题
using namespace std;
#include<iostream.h>
请参阅此内容。
#include<string.h>