Перегрузка std::streambuf для экранирования данных

У меня есть внешняя библиотека, которая может записать кучу данных, передав ей std::ostream* указатель. Пишет в двоичном формате

Я хочу записать эти данные в текстовый файл, который содержит другие вещи, преобразовав их в шестнадцатеричное или base64.

Поскольку данные, записываемые библиотекой lib, могут быть очень большими, я хочу избежать записи данных в буфер памяти, а затем преобразовывать их в текстовый формат. Я хотел бы конвертировать на лету.

Поэтому я ищу, как перегрузить std::streambuf для этой цели. Мне нужно перегрузить overflow виртуальная функция, и я нашел необходимую информацию для этого.

Вопрос в том, стоит ли мне писать в файл ostreamили прямо к своему streambuf который я могу использовать rdbuf()? Разрешено ли писать прямо на streamstringbuf?

Заранее спасибо!

0 ответов

Другие вопросы по тегам