2010-07-14 2 views
3

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

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

спасибо.

ответ

1

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