如何重置流开放标志?

时间:2011-10-31 23:59:04

标签: c++ stream

所以我正在做的是在二进制模式下创建一个字符串流。在某个地方,我不想再将其视为二进制文件,而是将其视为常规字符串流。

查看文档,唯一的时间流关心它们是二进制,输入还是输出(ios_base :: openmode标志)正在构建中。你可以改变操纵器标志和错误标志,但显然不是openmode标志?也许我看起来不够努力?

所以我目前正在做的事情就像是

std::stringstream memory( ios_base::in | ios_base::out | ios_base::binary );
boost::iostreams::copy( *source_file, memory );

在某条线上,我希望能够做到像

这样的事情
memory.reset_openmode( ios_base::in | ios_base::out );

1 个答案:

答案 0 :(得分:0)

你可以做什么(以及我会做什么)是关闭流,然后重新打开流作为基本文本文件,根据需要设置seekg()和seekp()标志。