Upload
catori
View
64
Download
0
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
STARTING OUT WITH
STARTING OUT WITH
Class 15 Class 15 HonorsHonors
2
• Understand some common
file I/O functions
• Set up a program for writing
to a file
• Read information from a file
Obj
ecti
ves
Obj
ecti
ves
3
3 Steps to Use a File3 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
4
File Name andFile Name and
Extension File ContentsMYPROG.BAS BASIC ProgramMENU.BAT DOS Batch FileINSTALL.DOC Documentation FileCRUNCH.EXE Executable FileGAMES.GRP Windows Group FileBOB.HTML HTML3DMODEL. JAVA java prog. or appletINVENT.OBJ Object FilePROG1.PRJ Borland C++ Porj. FileANSI.SYS Sys. Device DriverREADME.TXT Text FileCLIENTS.DAT
P. 706Table 12-4
5
Writing Information to a FileWriting Information to a FileFile:
In MemoryVariables:
X
Y
Z
10 25 40
10
25
40Data is copied from variablesinto the file
6
Reading Information from a FileReading Information from a FileFile:
In MemoryVariables:
X
Y
Z
10 25 40
10
25
40Data is copied from the fileinto variables
7
File StreamFile StreamData Typeofstream
DescriptionOutput 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
8
File StreamFile Stream
Data Typeifstream
DescriptionInput 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.
P. 700Table 12-1
9
File StreamFile Stream
Data Typefstream
DescriptionFile 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.
P. 700Table 12-1
10
ofstream outClientFile(“clients.dat”, ios::out);
if (!outClientFile) {cerr<<“File could not be opened”
<< endl;exit (1); // prototype in stdlib
}
11
ofstream outclientFile(“clients.dat”, ios::out);
ofstream outclientFile;
outclientFile.open(“clients.dat”, ios::out);
12
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- 2
p. 701
13
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- 2
p. 701
14
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
15
#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
16
#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”;}
17
#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
18
Program Screen OutputProgram Screen OutputFile opened successfully
Now writing information to the file.
Done.
Output to File DEMOFILE.TXTJonesSmithWilisDavis
P. 702
19
J o n e s \n S m i t h \n W i l
l i s \n D a v i s \n <EOF>
P. 702
20
#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
21
Output to File DEMOFILE.TXTJonesSmithWilisDavis
Pg. 703
22
J o n e s \n S m i t h \n W i l
l i s \n D a v i s \n <EOF>
P. 704Fig. 12- 3
23
//This program writes three rows of//This program writes three rows of//numbers to a file.//numbers to a file.
#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 };
P. 709Pgrm. 12-4
24
//Write three rows of numbers//Write three rows of numbersfor (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
25
Contents of File TABLE.TXT
2897 5 837 34 7 1623 390 3456 12
Pg. 709
26
#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
27
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
28
void ShowContents(fstream &File){ char Name [81];
while (!File.eof( )) {File >> Name;cout << Name << endl;
}
P. 711Pgrm. 12-5
29
J a y n e M u r p h y \n 4 7
2 \n <EOF>
J o n e s C i r c l e \n A
l m o n d , N C 2 8 7 0
P. 712
30
#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
31
ExerciseExercise
• 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
32
#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
33
// 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
34
Q & A
STARTING OUT WITH
STARTING OUT WITH
Conclusion of Conclusion of Class 15Class 15