/* 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 // for strings #include // for I/O #include // for file I/O #include // for setw() #include // for exit() using namespace std; // forward declarations void writeCharsetToFile (const string& filename); void outputFile (const string& filename); int main () { writeCharsetToFile("charset.out"); outputFile("charset.out"); } void writeCharsetToFile (const string& filename) { // open output file ofstream file(filename.c_str()); // file opened? if (! file) { // NO, abort program cerr << "can't open output file \"" << filename << "\"" << endl; exit(EXIT_FAILURE); } // write character set for (int i=32; i<256; i++) { file << "value: " << setw(3) << i << " " << "char: " << static_cast(i) << endl; } } // closes file automatically void outputFile (const string& filename) { // open input file ifstream file(filename.c_str()); // file opened? if (! file) { // NO, abort program cerr << "can't open input file \"" << filename << "\"" << endl; exit(EXIT_FAILURE); } // copy file contents to cout char c; while (file.get(c)) { cout.put(c); } } // closes file automatically