我可以用什么代替strstream::freeze?

What I can use instead of strstream::freeze?

本文关键字:freeze strstream 什么 我可以      更新时间:2023-10-16

我正在处理一些旧的c ++代码,它有已弃用的strstream类。我需要用工作的替换它们。

在我的头文件中,我得到了这个:

ostrstream          tokenBuff;

和使用标头的 .c 文件:

tokenBuff.freeze(0);
tokenBuff.seekp(0);

ostringstream 有 seekp(( 但没有 freeze((。我该如何处理这个问题。谢谢。

std::ostringstream的情况下,你不需要freeze()- 调用这个函数的必要性实际上是strstream首先被弃用的原因之一。由于其设计(从str()返回char*(,不清楚谁应该清理strstream持有的缓冲区,并且必须使用freeze()来表示您希望strstream自己在每次调用str()后执行此操作 - 如果std::ostringstream,您无需担心这一点,因为str()返回std::string的副本。

ostringsteam中没有替代freeze,因为它不再需要。Inostrstreamfreeze()用于解决str()返回 c 样式 (char *( 字符串的缺陷。