【发布时间】:2011-10-31 23:59:03
【问题描述】:
所以我正在做的是在二进制模式下创建一个字符串流。在某个地方,我不想再将其视为二进制,而是将其视为常规字符串流。
查看文档,只有在构建流时才关心它们是二进制、输入还是输出(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 );
【问题讨论】:
-
您真的需要换行翻译吗?尤其是在内存流中?
-
是 all 二进制标志吗?所以你是说,如果我以二进制模式打开某些东西,稍后当我想将其视为文本时,我可以做所有我想要的
memory >> somestring,而只有新行字符没有被正确读取