【问题标题】:Tricks to pass from a ostringstream to a istringstream从 ostringstream 传递到 istringstream 的技巧
【发布时间】:2013-11-10 08:10:15
【问题描述】:

我尝试制作一个压缩/解压模块,然后使用 istringstream 进行压缩,使用 ostringstream 进行解压。

我的问题是,在用压缩数据填充 istringstream 后,我无法将此流转换为 ostringstream。我试试:

iss.rdbuf(oss.rdbuf());

作为 in 和 out 类型匹配但它不起作用。

你有什么想法吗?

提前致谢。

【问题讨论】:

  • 您可能只想使用 stringstream 而不是 ostringstream 和 istringstream,因为您可以对其进行读写:cplusplus.com/reference/sstream/basic_stringstream
  • 请注意,这样做非常危险,因为对iss 的任何输入操作都会影响oss 的缓冲区。您不会在 iss 中发现任何反映 oss 的变化。这只是其他潜在陷阱之一。

标签: c++ converter stringstream streambuf


【解决方案1】:

stringstream::rdbuf 没有带参数的重载。但是,它确实继承了具有此属性的基类版本:

iss.basic_ios<char>::rdbuf(oss.rdbuf());

原来不能使用是因为派生类版本隐藏了它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多