350 likes | 535 Views
Class 15 Honors. Objectives. Understand some common file I/O functions Set up a program for writing to a file Read information from a file. 3 Steps to Use a File. The file must be opened. If the file does not exist, opening it means creating it.
E N D
Objectives • Understand some common file I/O functions • Set up a program for writing to a file • Read information from a file
3 Steps to Use a File • The file must be opened. If the file does not exist, opening it means creating it. • Information is then saved to the file, read from the file, or both. • When the program is finished using the file, the file must be closed. P. 701
P. 706 Table 12-4 File Name and Extension File Contents MYPROG.BAS BASIC Program MENU.BAT DOS Batch File INSTALL.DOC Documentation File CRUNCH.EXE Executable File GAMES.GRP Windows Group File BOB.HTML HTML 3DMODEL. JAVA java prog. or applet INVENT.OBJ Object File PROG1.PRJ Borland C++ Porj. File ANSI.SYS Sys. Device Driver README.TXT Text File CLIENTS.DAT
Writing Information to a File File: In Memory Variables: 25 40 10 10 X Y 25 Z 40 Data is copied from variables into the file
Reading Information from a File File: In Memory Variables: 25 40 10 10 X Y 25 Z 40 Data is copied from the file into variables
P. 700Table 12-1 File Stream Data Type ofstream Description Output File Stream. This data type can be used to create files and write information to them. With the ofstream data type, information may only be copied from variables to the file, but not vice-versa.
P. 700Table 12-1 File Stream Data Type ifstream Description Input File Stream. This data type can be used to read information from files into memory. With the ifstream data type, information may only be copied from the file into variables, not but vice-versa.
File Stream P. 700Table 12-1 Data Type fstream Description File Stream. This data type can be used to create files, write information to them, and read information from them. With the fstream data type, information may be copied from variables into a file, or from a file into variables.
ofstream outClientFile(“clients.dat”, ios::out); if (!outClientFile) { cerr<<“File could not be opened” << endl; exit (1); // prototype in stdlib }
ofstream outclientFile(“clients.dat”, ios::out);ofstream outclientFile;outclientFile.open(“clients.dat”, ios::out);
Opening Modes for Files • ios::app- Write all output to the end of the file • ios::ate- Move to the end of the original file when file is opened. Enable data to be written anywhere in the file Table 12- 2p. 701
Opening Modes for Files (Cont’d) • ios::in- Open a file for input. • ios::out- Open a file for output. • ios::trunc- Discard the file’s contents if it exists (this is also the default action for ios::out) Table 12- 2p. 701
Opening Modes for Files (Cont’d) • ios::nocreate- If the file does not exist, the open operation fails. • ios::noreplace- If the file exists, the open operation fails. • ios::binary- Information read or written in pure binary format
#include <fstream> using namespace std; int main() { fstream DataFile; char FileName[81]; cout << “Enter the name of the file you wish to open\n”; cout << “or create:”; cin.getline(FileName); DataFile.open(FileName, ios::out); cout << “The file ” << FileName << ”was opened.\n”; } P. 702Pgrm. 12-1
#include <fstream> using namespace std; int main() { fstream DataFile; char FileName[81]; cout << “Enter the name of the file you wish to open\n”; cout << “or create:”; cin.getline(FileName); DataFile.open(FileName, ios::out); cout << “The file ” << FileName << ”was opened.\n”; }
#include <fstream.h> void main(void) { fstream DataFile; DataFile.open(“demofile.txt”, ios::out); if (DataFile == 0) { cout << “File open error!” ,, endl; return; } cout << “File opened successfully.\n”; cout << “Now writing information to the file.\n”; DataFile << “Jones\n”; DataFile << “Smith\n”; DataFile <<“Willis\n”; DataFile << “Davis\n”; DataFile.close( ); } P. 702Pgrm. 12-1
Program Screen Output P. 702 File opened successfully Now writing information to the file. Done. Output to File DEMOFILE.TXT Jones Smith Wilis Davis
S m i t \n n e h i l o J s \n W i s D l \n v s a \n i <EOF> P. 702
#include <fstream> int main() { fstream DataFile; DataFile.open(“demofile.txt”, ios::out); DataFile << “Jones\n”; DataFile << “Smith\n”; DataFile.close( ); DataFile.open(“demofile.txt”, ios::app); DataFile << “Willis\n”; DataFile << “Davis\n”; DataFile.close( ); } P. 703Pgrm. 12-2
Output to File DEMOFILE.TXT Jones Smith Wilis Davis Pg. 703
S m i t \n n e h i l o J s \n W i s D l \n v s a \n i <EOF> P. 704Fig. 12- 3
//This program writes three rows of//numbers to a file. P. 709Pgrm. 12-4 #include <fstream> # include <iomanip>#include <iostream>using namespace std; int main () { fstream OutFile(“table.txt, ios::out); int Nums[3] [3] = { 2897, 5, 837, 34, 7, 1623, 390, 3456, 12 };
//Write three rows of numbers for (int Row = 0; row < 3; Row++) { for (int Col = 0; Col < 3; Col++) { OutFile << setw(4)<< Nums[Row] [Col]<<“ ”; } OutFile << endl; } OutFile.close( ); } P. 709Pgrm. 12-4
Contents of File TABLE.TXT 2897 5 837 34 7 1623 390 3456 12 Pg. 709
#include <fstream>#include <iostream> using namespace std; bool openFileIn(fstream &, char [51]);void showContents(fstream &); int main() { fstream dataFile; if (!openFileIn(dataFile,”demofile.txt); { cout << “File open error!<< endl; return 0; } P. 710-711Pgrm. 12-5
cout << “File opened successfully.\n”; cout << “Now reading information from the file.\n\n”; showContents(dataFile); cout << “done” ; return 0; // end of main}bool openFileIn(fstream &file, char *name){ bool status; file.open(name,ios::in); if (file.fail()) status = false; else status = true; return status; } P. 711Pgrm. 12-5
void ShowContents(fstream &File) { char Name [81]; while (!File.eof( )) { File >> Name; cout << Name << endl; } P. 711Pgrm. 12-5
r u M p y y n h 4 7 a J e \n C i r l o n c A J e e s \n N C 2 o n 7 0 m l d , 8 P. 712 2 \n <EOF>
#include <fstream> #include <iostream>using namespace std; int main() { fstream NameFile; char Input[81]; NameFile.open(“murphy.txt”, ios::in); if (NameFile == 0) { cout << “File open error!” << endl; return 0; } nameFile.getline(input,81); while (!NameFile.eof( )) { cout << Input; nameFile.getline(input,81); } NameFile.close( ); } P. 717Pgrm. 12-8
Exercise • Write a program that will read all the data in a file and write all the data to a new file removing the blanks.Modify page 730
#include <fstream> #include <iostream> int main() { fstream inFile; ostream outFile(“out.dat”, ios:: out); char Ch, FileName [51]; cout << “Enter the name of the file”; cin >> FileName; inFile.open(FileName, ios::in); if (!inFile) { cout << FileName << “could not” << “be opened.\n”; return 0;} P. 723-724Pgrm. 12-12
// prime read inFile.get(ch); while (!inFile.eof( )) { if(Ch! = ‘ ‘ ) // change from textbook outFile.put(Ch); inFile.get(Ch); } File.close( ); return 0;} P. 723-724Pgrm. 12-12