Mega Code Archive

 
Categories / C++ Tutorial / File Stream
 

Redirect ouput into the file

/* The following code example is taken from the book  * "The C++ Standard Library - A Tutorial and Reference"  * by Nicolai M. Josuttis, Addison-Wesley, 1999  *  * (C) Copyright Nicolai M. Josuttis 1999.  * Permission to copy, use, modify, sell and distribute this software  * is granted provided this copyright notice appears in all copies.  * This software is provided "as is" without express or implied  * warranty, and with no claim as to its suitability for any purpose.  */ #include <iostream> #include <fstream> using namespace std; void redirect(ostream&); int main() {     cout << "the first row" << endl;     redirect(cout);     cout << "the last row" << endl; } void redirect (ostream& strm) {     ofstream file("redirect.txt");          // save output buffer of the stream     streambuf* strm_buffer = strm.rdbuf();     // redirect ouput into the file     strm.rdbuf (file.rdbuf());     file << "one row for the file" << endl;     strm << "one row for the stream" << endl;     // restore old output buffer     strm.rdbuf (strm_buffer); }    // closes file AND its buffer automatically the first row the last row