我在函数中得到一个ostream
对象引用。它包含一个我需要修改的字符串。
我使用ostream
函数将rdbuf()
的内容复制到stringstream
。
现在我需要将更新的stringstream(底层字符串)复制回ostream对象。我怎么能这样做?
我搜索了擦除ostream内容的方法,但找不到。
注意:我无法更改其他功能的实现,即我无法使用ostringstream
(我知道可以解决我的问题)。
答案 0 :(得分:1)
您可以尝试使用ostream::seekp()
或streambuf::pubseekpos()
更改流中的当前位置:
std::ofstream out;
out.seekp(-10, std::ios_base::cur); // move back 10 positions from current location
out.rdbuf()->pubseekpos(12); // move to position 12
请记住: