C ++<<找不到操作员

时间:2018-06-13 20:00:02

标签: c++ string visual-studio operator-keyword stringstream

string toString() {

    std::stringstream punkte;
    std::stringstream name;
    std::cout << name << "hat" << punkte << "Punkte" << '\n'
    return 0;

  }

在这行代码中。我收到错误C ++&lt;&lt;找不到操作员 我无法弄清楚我的错误是什么。我已阅读并尝试了不同的解决方案。但没有任何作用。有人可以帮忙吗?

 std::cout << name << "hat" << punkte << "Punkte" << '\n';

我还在我的代码中包含了这个:

#include <string>       // std::string
#include <iostream>     // std::cout
#include <sstream>      // std::stringstream, std::stringbuf
#include <fstream>

2 个答案:

答案 0 :(得分:1)

运算符&lt;&lt;()的重载不会将std :: stringstream格式化为std :: ostream。错误不存在。

答案 1 :(得分:0)

您正在尝试呼叫运营商&#34;&lt;&lt;&#34;使用stringstream参数。换句话说:

std::cout << name;

相当于:

std::cout.operator<<(name);

该运算符&lt;(const std :: stringstream&amp;)函数不存在。

我认为你想要做的是为每个字符串流分配它们的值,然后打印两者,不是吗?

string toString() 
{
    std::stringstream punkte;
    std::stringstream name;
    name << "hat";
    punkte << "Punkte";
    std::cout << name.str() << punkte.str() << std::endl;
    return name.str();
}

小心你的返回值,并记住std :: stringstream不是std :: string。如果要在流中检索std:字符串,则必须调用str()方法。