打印出std :: string

时间:2012-05-19 19:15:29

标签: c++ iostream fstream cout

在下面的示例代码中

    std::string result = exec( "dir" ) ;
    cout<<result;

我收到以下错误

  

错误C2679:二进制'&lt;&lt;' :没有运算符定义哪个采用类型为'std :: basic_string的右手操作数

我怀疑有一种特殊方法可以打印std::string

请帮我调试一下。

此外,我还包含 iostream.h fstream.h 标头文件。

4 个答案:

答案 0 :(得分:3)

我怀疑您需要使用cout

来限定std::
    std::cout << result;

或将using namespace::std添加到cpp文件的顶部。

答案 1 :(得分:2)

您需要加入<string>

答案 2 :(得分:2)

cout在<iostream>中定义。要使<<的语法与std::string一起使用,需要<sstream>

#include <iostream>
#include <sstream>

std::string result = "something";
std::cout << result << " and something else";

答案 3 :(得分:0)

代表@MrLister 回答我自己的问题,因为他处于非活动状态。

我应该包含<iostream><fstream>而不包含.h。此后也应输入using namespace std;

例如:

#include <string>
#include <iostream>
#include <fstream>
#include <stdlib>

using namespace std;

很多感谢@MrLister。

并且感谢@dasblinkenlight。他的回答有所增强。