在下面的示例代码中
std::string result = exec( "dir" ) ;
cout<<result;
我收到以下错误
错误C2679:二进制'&lt;&lt;' :没有运算符定义哪个采用类型为'std :: basic_string的右手操作数
我怀疑有一种特殊方法可以打印std::string
。
请帮我调试一下。
此外,我还包含 iostream.h , fstream.h 和流标头文件。
答案 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。他的回答有所增强。