我想要做的是创建一个方法,将字符串流作为参数,在方法中写入,然后从方法之外的字符串流中读取。
例如类似的东西。
void writeToStream(std::stringstream sstr){
sstr << "Hello World";
}
int main(){
std::stringstream sstr;
writeToStream(sstr);
std::cout << sstr.str();
}
但是当我这样做时,我收到了编译时错误。这可能是因为我应该使用对stringstream的引用或类似的东西。我尝试过使用引用或指针的不同组合,但似乎什么都没有用?
答案 0 :(得分:4)
您无法复制流,因此您无法按值传递。
通过引用传递它:
void writeToStream(std::stringstream &sstr)
答案 1 :(得分:3)
std::stringstream
如何为您的函数编写它。这是因为讨论的原因here。但是,您可以将std::stringstream
作为对函数的引用,这是完全合法的。以下是一些示例代码:
#include <sstream>
void writeToStream(std::stringstream &sstr){
sstr << "Hello World";
}
int main(){
std::stringstream sstr;
writeToStream(sstr);
std::cout << sstr.str();
}
答案 2 :(得分:2)
按如下方式更改您的功能,并添加<sstream>
void writeToStream(std::stringstream& sstr){
sstr << "Hello World";
}