能够使用rdbuf()复制stringstreams,但由于某种原因不能复制fstreams?

时间:2018-07-08 12:32:05

标签: c++ stream fstream stringstream

编辑:我在下面对“内容”一词的使用极具误导性。 <script src="https://d3js.org/d3.v5.min.js"></script>somestringstream.rdbuf()之间隐含的差异不存在(由于对Visual Studio调试信息的误解,所以认为如此)。


IIUC somefstream.rdbuf()显然返回一个指向流内容开头的指针。因此,使用两个rdbuf()可以做到:

stringstreams

a和b现在都具有a的内容。 但是,当a是b << a.rdbuf(); //b is stringstream, a is stringstream 而b是fstream时,这似乎不能以相同的方式起作用:

stringstream

现在b具有a的内容,但是a不再具有任何内容。当a为b << a.rdbuf(); //b is stringstream, a is fstream 时,如何确保a保留其内容?为什么它可以与fstream一起使用,但不能与stringstream一起使用?
预先感谢您的帮助。

完整(经过测试)的代码,包含示例:

fstream

0 个答案:

没有答案