我有一个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

AlterSstream:
void AlterSstream(wstringstream& outStream)
{
    outStream << "odp";
}

为什么会这样呢?如果我直接打印出sstream,效果很好,但是打印出bar_stream会产生问题。我猜<<运算符不起作用,我认为它在两个流之间起作用?

更新:抱歉,我原本只保留了一些代码。它固定在上面。

最佳答案

没有重载可从流复制到流。
您需要更改以下行:

bar_stream << sstream;

至:
bar_stream << sstream.str();

08-16 23:16