Presentation is loading. Please wait.

Presentation is loading. Please wait.

File I/O. COMP104 Lecture 20 / Slide 2 Using Input/Output Files (Review) * A computer file n is stored secondary storage devices (hard drive, CD) n can.

Similar presentations


Presentation on theme: "File I/O. COMP104 Lecture 20 / Slide 2 Using Input/Output Files (Review) * A computer file n is stored secondary storage devices (hard drive, CD) n can."— Presentation transcript:

1 File I/O

2 COMP104 Lecture 20 / Slide 2 Using Input/Output Files (Review) * A computer file n is stored secondary storage devices (hard drive, CD) n can be used to provide input data or receive output data, or both n must be opened before using

3 COMP104 Lecture 20 / Slide 3 Using Input/Output Files * stream - a sequence of characters n where is it from (input)? n where does it go (output)? n interactive (iostream)  cin - input stream associated with keyboard  cout - output stream associated with display n file (fstream)  ifstream - defines new input stream (normally associated with a file)  ofstream - defines new output stream (normally associated with a file)

4 COMP104 Lecture 20 / Slide 4 Example * When you type “I am Peter” on keyboard, we say that “I am Peter” is an input stream (of characters). * A C++ program can be considered simply as a long stream of characters, an input stream from a file. n e.g. #include void main() { cout << “Hello Mary!” << endl; return 0; }

5 COMP104 Lecture 20 / Slide 5 File-Related Functions #include * xxx.open(fname) connects stream xxx to the external file fname * xxx.get(ch) Gets the next character from the input stream xxx and places it in the character variable ch * xxx.put(ch) Puts the character ch into the output stream xxx * xxx.eof() n tests for end-of-file condition * xxx.close() n disconnects the stream and closes the file

6 COMP104 Lecture 20 / Slide 6 >: Example 1  You can read and write integers, doubles, chars, etc. from files just like cin >> and cout << : #include using namespace std; void main(){ ifstream fin; int A[4], r; fin.open("file1.dat");// read data file of four integers for(r=0; r<4; r++)// into array fin >> A[r]; fin.close(); ofstream fout; fout.open("file2.dat"); // write data file for(r=3; r>=0; r--)// with numbers reversed fout << A[r] << ' '; fout.close(); }

7 COMP104 Lecture 20 / Slide 7 File I/O: Example 1 file1.dat: 1 2 3 4(eof) file2.dat: 4 3 2 1 (eof)

8 COMP104 Lecture 20 / Slide 8 File I/O: Example 2 // Copies indata.dat to outdata.dat // and counts the number of lines. // Prints file to screen too. #include using namespace std; void main(){ ifstream ins; ofstream outs; int count=0; char next; ins.open("indata.dat");// open the input file outs.open("outdata.dat");// open the output file

9 COMP104 Lecture 20 / Slide 9 File I/O: Example 2 while(true){ // loop for each line while(true){ // loop to read each char on line ins.get(next); if(ins.eof() || next== '\n') break; cout << next; // echo next char on display outs << next; // copy next char to file } count++; cout << endl; // echo '\n' on display if(ins.eof()) break; outs << endl; // copy '\n' to file } ins.close(); outs.close(); cout << "Number of lines copied: " << count << endl; }

10 COMP104 Lecture 20 / Slide 10 File I/O: Example 2 indata.dat: a b c top10 methods to count spaces 1 3(eof) outdata.dat: a b c top10 methods to count spaces 1 3(eof) Output to screen: a b c top10 methods to count spaces 1 3 Number of lines copied: 4

11 COMP104 Lecture 20 / Slide 11 File I/O: Example 3 // Counts the number of blanks on each line of indata.dat. // Outputs each line, and number of blanks on each line. #include using namespace std; void main(){ ifstream ins; int count; char next; ins.open("indata.dat");// open the file

12 COMP104 Lecture 20 / Slide 12 File I/O: Example 3 while(true){ // loop to read each line count = 0; while(true){ // loop to count spaces on line ins.get(next); // read next character if(ins.eof() || next== '\n') // line done? break; // go to next line if line done cout << next; // otherwise output character if(next==' ') // increment if blank count++; } cout << endl; cout << "Blanks: " << count << endl; if( ins.eof()) // done? break; } ins.close(); }

13 COMP104 Lecture 20 / Slide 13 File I/O: Example 3 indata.dat: a b c top10 methods to count spaces 1 3(eof) Output to screen: a b c Blanks: 2 top10 methods to count spaces Blanks: 4 Blanks: 0 1 3 Blanks: 3


Download ppt "File I/O. COMP104 Lecture 20 / Slide 2 Using Input/Output Files (Review) * A computer file n is stored secondary storage devices (hard drive, CD) n can."

Similar presentations


Ads by Google