C++ << 未找到运算符

C++ << no operator found

string toString() {

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

  }

在这行代码。我收到错误 C++ << 找不到运算符 我不知道我的错误是什么。我已经阅读并尝试了不同的解决方案。但没有任何效果。有人可以帮忙吗?

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

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

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

没有将 std::stringstream 格式化为 std::ostream 的 operator<<() 重载。有错不在。

您正在尝试使用字符串流参数调用运算符“<<”。换句话说:

std::cout << name;

相当于:

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

并且那个 operator<<(const std::stringstream&) 函数不存在。

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

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

请注意您的 return 值,并记住 std::stringstream 不是 std::string。如果要在流中检索std:string,则必须调用str()方法。