как манипулировать контентом ostream - PullRequest
3 голосов
/ 14 июля 2010

У меня есть код C ++, который имеет много функций, которые получают ostream в качестве аргумента. Теперь я хочу манипулировать содержимым этого ostream. Например, я хочу заменить все вхождения определенного слова другим словом.

Фактический параметр для этих функций всегда вне потока. Есть ли способ изменить создание этого ofstream таким образом, чтобы он поставил такую ​​манипулирующую функцию?

спасибо.

1 Ответ

1 голос
/ 14 июля 2010

Похоже, вам следует использовать контейнер с произвольным доступом, например, std::basic_string вместо потоков. Поток - это не контейнер, а односторонний приемник или источник данных. После записи в него вы больше не сможете получить доступ к содержимому. Существуют исключения (например, строковые потоки), но в отличие от потоков файлов они предоставляют интерфейс потоковой передачи в контейнер.

...