所有其他帖子都告诉我更改我的编译器,但我不能,因为我应该使用这个编译器。请帮忙!
void foo(ostringstream &os) {
ostringstream temp;
temp << 0;
//do something
os.swap(temp);
}
^我真的不能上传做某事的部分,因为它是学校项目的一部分,但编译器在以下位置给我一个错误:os.swap(temp);
我也尝试了 = 运算符,但效果不佳
所有其他帖子都告诉我更改我的编译器,但我不能,因为我应该使用这个编译器。请帮忙!
void foo(ostringstream &os) {
ostringstream temp;
temp << 0;
//do something
os.swap(temp);
}
^我真的不能上传做某事的部分,因为它是学校项目的一部分,但编译器在以下位置给我一个错误:os.swap(temp);
我也尝试了 = 运算符,但效果不佳
您可以使用str
成员函数 instd::ostringstream
从临时流中获取缓冲区并设置传递给的缓冲区foo
。
#include <iostream>
#include <string>
#include <sstream>
void foo(std::ostringstream &os)
{
std::ostringstream temp;
temp << "goodbye";
//do something
os.str(temp.str()); // Set the new buffer contents
}
int main()
{
std::ostringstream out;
out << "hello";
std::cout << out.str() << std::endl;
foo(out);
std::cout << out.str() << std::endl;
}
或者,您可以通过在os
输入foo
并直接输出到os
. 您的帖子没有提供足够的信息来确定这是否对您有用,但这是一个选择。
void foo(std::ostringstream &os)
{
os.str(""); // Set the new buffer contents
os << "goodbye";
// do something
}