как сбросить флаги открытия потока? - PullRequest
0 голосов
/ 01 ноября 2011

Итак, я создаю поток строк в двоичном режиме. Где-то вдоль линии я больше не хочу рассматривать его как двоичный, а как обычный поток строк.

Просматривая документацию, единственные потоки времени, заботящиеся о том, являются ли они двоичными, входными или выходными (флаги 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 голосов
/ 01 ноября 2011

То, что вы могли бы сделать (а также то, что я бы сделал), это то, что я бы закрыл поток, а затем снова открыл поток как основной текстовый файл, установив флаги seekg () и seekp () при необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...