c++ - wstringstream 的问题

标签 c++ string

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

相关文章:

c++ - 多个子类层次结构

c++ - 原始循环与依赖于索引的循环算法

c - 在 C 宏中返回带引号的字符串

java - 转换0-10的整数并替换为与整数对应的英文单词

c++ - Qt的插件会导致主程序崩溃吗?

c++ - 如果条件太长并且包括 for 循环

c++ - 在使用Builder Pattern的构造函数中将指针类型的成员数据初始化为NULL

java - 如何使 && 作为字符串中的逻辑运算符

java - 从半高亮文本中获取非高亮文本的更好算法

sql - 分别提取数字和特殊字符