File IO - PowerPoint PPT Presentation

About This Presentation
Title:

File IO

Description:

outs.open('outdata.dat'); // open the output file. COMP104 File I/O / Slide 8 ... outs.close(); cout 'Number of lines copied: ' count endl; COMP104 ... – PowerPoint PPT presentation

Number of Views:39
Avg rating:3.0/5.0
Slides: 13
Provided by: andrew184
Category:
Tags: file | outs

less

Transcript and Presenter's Notes

Title: File IO


1
  • Programming
  • File I/O

2
Using Input/Output Files
  • A computer file
  • is stored on a secondary storage
  • device (e.g., disk)
  • is permanent
  • can be used to provide input data
  • or receive output data, or both
  • must reside in Project directory (not necessarily
    the same directory as the .cpp files)
  • must be opened before reading it

3
Using Input/Output Files
  • stream - a sequence of characters
  • interactive (iostream)
  • ? cin - input stream associated with keyboard
  • ? cout - output stream associated with display
  • file (fstream)
  • ? ifstream - defines new input stream (normally
    associated with a file)
  • ? ofstream - defines new output stream (normally
    associated with a file)

4
File-Related Functions
  • include ltfstreamgt
  • 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()
  • tests for end-of-file condition
  • xxx.close()
  • disconnects the stream and closes the file

5
ltlt and gtgt Example 1
  • You can read and write integers, doubles, chars,
    etc. from files just like cin gtgt and cout ltlt
  • include ltiostreamgt
  • include ltfstreamgt
  • using namespace std
  • void main()
  • ifstream fin
  • int A4, r
  • fin.open("file1.dat") // read data file of four
    integers
  • for(r0 rlt4 r) // into array
  • fin gtgt Ar
  • fin.close()
  • ofstream fout
  • fout.open("file2.dat") // write data file
  • for(r3 rgt0 r--) // with numbers reversed
  • fout ltlt Ar ltlt ' '
  • fout.close()

6
File I/O Example 1
  • file1.dat
  • 1 2 3 4(eof)
  • file2.dat
  • 4 3 2 1 (eof)

7
File I/O Example 2
  • // Copies indata.dat to outdata.dat
  • // and counts the number of lines.
  • // Prints file to screen too.
  • include ltiostreamgt
  • include ltfstreamgt
  • using namespace std
  • void main()
  • ifstream ins
  • ofstream outs
  • int count0
  • char next
  • ins.open("indata.dat") // open the input file
  • outs.open("outdata.dat") // open the output file

8
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 ltlt next
  • outs ltlt next
  • count
  • cout ltlt endl
  • if(ins.eof())
  • break
  • outs ltlt endl
  • ins.close()
  • outs.close()
  • cout ltlt "Number of lines copied " ltlt count ltlt
    endl

9
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

10
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 ltiostreamgt
  • include ltfstreamgt
  • using namespace std
  • void main()
  • ifstream ins
  • int count
  • char next
  • ins.open("indata.dat") // open the file

11
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 ltlt next // otherwise output character
  • if(next' ') // increment if blank
  • count
  • cout ltlt endl
  • cout ltlt "Blanks " ltlt count ltlt endl
  • if(ins.eof()) // done?
  • break
  • ins.close()

12
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
Write a Comment
User Comments (0)
About PowerShow.com