Как мне создать свой собственный ostream / streambuf?

Для A + C) Я думаю, вам следует ostream посмотреть на фасеты, они streambuf изменяют то, как объекты ostream записываются как символы. Здесь c++ вы также можете хранить статистику cpp о том, сколько раз вы транслировали ostream свои объекты. Посмотрите c++ пример на How to format my own objects when using STL streams?.

Для B) Вам необходимо streambuf создать свой собственный streambuf streambuf и подключить свой cpp ostream к этому буферу (аргумент ostream конструктора). См. Luc's links + Deriving new streambuf classes. Короче cpp говоря, вам нужно реализовать c++ это для ostream (минимум):

  • переполнение (поместить один символ или очистить буфер) (link)
  • xsputn (поместить массив символов в буфер) (link)
  • синхронизация (link)

c++

ostream

streambuf

2022-07-25T03:28:13+00:00