我有一个 wstringstream:
wstringstream sstream;
AlterSstream(sstream);
wstringstream bar_stream;
bar_stream << sstream;
bar_stream << "foo";
MessageBoxW(
NULL,
bar_stream.str().c_str(),
L"subject",
MB_OK
);
这会输出一个长字符串,看起来与我在 AlterSstream()
中放入的内容完全不同。 :
00000000002CEC58foo
改变流:
void AlterSstream(wstringstream& outStream)
{
outStream << "odp";
}
为什么会这样?如果我打印出 sstream
直接,它工作正常,但打印出 bar_stream
造成问题。我猜 <<
运算符在两个流之间的工作方式与我认为的不同?
更新:抱歉,我最初遗漏了一些代码。上面已经固定了。
最佳答案
从一个流复制到另一个流没有过载。 您需要更改行:
bar_stream << sstream;
到:
bar_stream << sstream.str();
关于c++ - wstringstream 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3010483/