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>
答案 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()
方法。