Output iterators are also available for ti(streambuf) objects.

To write to  tt(streambuf) objects supporting output operations
 hi(ostreambuf_iterator)tt(ostreambuf_iterators) can be used, supporting the
operations that are also available for
tt(ostream_iterator). tt(Ostreambuf_iterators) support two constructors:
    itemization(
    ittq(ostreambuf_iterator<Type>(streambuf *))
        (A pointer to a tt(streambuf) may be used when defining an
tt(ostreambuf_iterator). It can be used as an OutputIterator.)
    ittq(ostreambuf_iterator<Type>(ostream))
        (An em(ostream) may be also used when defining an
tt(ostreambuf_iterator). It accesses the tt(ostream)'s tt(streambuf) and it
can also be used as an OutputIterator.)
    )
    The next example illustrates the use of both
 hi(istreambuf_iterator)tt(istreambuf_iterators) and tt(ostreambuf_iterators)
when copying a stream in yet another way. Since the stream's tt(streambuf)s
are directly accessed the streams and stream flags are bypassed. Consequently
there is no need to clear tt(ios::skipws) as in the previous section, while
the next program's efficiency probably also exceeds the efficiency of the
program shown in the previous section.
        verbinclude(-a examples/streambufiter.cc)
