Das folgende Code-Beispiel stammt aus dem Buch
 
  Objektorientiertes Programmieren in C++
  - Ein Tutorial für Ein- und Umsteiger
 von Nicolai Josuttis, Addison-Wesley München, 2001
 
  © Copyright Nicolai Josuttis 2001
#include <iostream>
#include <fstream>
#include <string>
void redirect(std::ostream&,const std::string&);
int main()
{
    std::cout << "erste Zeile" << std::endl;
    redirect(std::cout, "redirect.txt"); // cout nach redirect.txt umleiten
    std::cout << "letzte Zeile" << std::endl;
}
void redirect (std::ostream& strm, const std::string& dateiname)
{
    // Datei (mit dazugehörigem Puffer) zum Schreiben öffnen
    std::ofstream datei(dateiname.c_str());
    
    // Ausgabepuffer des übergebenen Streams merken
    std::streambuf* strm_puffer = strm.rdbuf();
    // Ausgaben in die Datei umlenken
    strm.rdbuf(datei.rdbuf());
    datei << "direkt in die Datei geschriebene Zeile" << std::endl;
    strm  << "auf den umgelenkten Stream geschriebene Zeile"
          << std::endl;
    // alten Ausgabepuffer des übergebenen Streams restaurieren
    strm.rdbuf(strm_puffer);
}  // schließt die Datei und den dazugehörigen Puffer