为什么我不能 cout
string
这样:
string text ;
text = WordList[i].substr(0,20) ;
cout << "String is : " << text << endl ;
当我这样做时,我收到以下错误:
错误2错误C2679:二进制'<<':找不到带有'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 ;
6 回答
你需要包括
你需要以某种方式引用cout的命名空间
std
. 例如,插入在函数定义或文件之上 .
您的代码有几个问题:
WordList
未在任何地方定义 . 您应该在使用它之前定义它 .你不能只在这样的函数之外编写代码 . 你需要把它放在一个函数中 .
在使用
cout
或endl
之前,您需要#include <string>
才能使用字符串类和iostream .string
,cout
和endl
位于std
命名空间中,因此除非使用using
指令将它们首先放入范围,否则无法使用_2394350前缀来访问它们 .以上答案很好,但如果您不想添加字符串include,则可以使用以下内容
您不必明确引用
std::cout
或std::endl
.它们都包含在
namespace std
中 .using namespace std
而不是使用范围解析操作符::
每次使更容易和更清洁 .如果您使用的是Linux系统,则需要添加
using namespace std;
Headers 下方
如果windows然后确保你正确放置 Headers
#include<iostream.h>
#include<string.h>
请参考它完美的工作 .