// Files.cpp // revised 12 feb 04 tom bailey // Returns a reference to the file. Client code has to // delete the file. This is a problem if the file is cin. // Perhaps I'll find a way to fix the problem by defining // a class that manages a file pointer. // tom bailey 8 jan 04 // Utility for setting up input and output files. #include "Files.h" using std::istream; using std::ostream; using std::cin; using std::cout; #include using std::ifstream; using std::ofstream; using std::ios; #include using std::string; istream & Files::getInfile() { string inFileName; cout << "Enter input file name: "; cin >> inFileName; if( inFileName == "cin" ) return cin; else { return * new ifstream( inFileName.c_str(), ios::in ); } } ostream & Files::getOutfile() { string outFileName; cout << "Enter output file name: "; cin >> outFileName; if( outFileName == "cout" ) return cout; else { return * new ofstream( outFileName.c_str(), ios::out ); } } void Files::removeInfile( istream & infile ) { if( infile != cin ) delete & infile; } void Files::removeOutfile( ostream & outfile ) { if( outfile != cout ) delete & outfile; }