iostream file input/output (file i/o)overloading operators file input/output (file i/o) comp sci...

24
iostream iostream hierarchy File streams Basic examples fstream member functions open() modes read/write pointer positioning Passing streams to functions Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++

Upload: others

Post on 31-Jul-2020

48 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

File Input/Output (File I/O)

Comp Sci 1570 Introduction to C++

Page 2: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Admin notes

Advising appointments will eclipse office hours this week, so noguarantees about availability during normal times. With 130appointments at 15 minutes each, the whole week is booked.

Page 3: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Outline

1 iostreamiostream hierarchy

2 File streamsBasic examples

fstream member functionsopen() modesread/write pointer positioning

3 Passing streams to functionsOverloading operators

Page 4: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Outline

1 iostreamiostream hierarchy

2 File streamsBasic examples

fstream member functionsopen() modesread/write pointer positioning

3 Passing streams to functionsOverloading operators

Page 5: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

hierarchy of related iostream objects

Page 6: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

iostream hierarchy

Page 7: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

iostream hierarchy

Page 8: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

iostream hierarchy

Page 9: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Outline

1 iostreamiostream hierarchy

2 File streamsBasic examples

fstream member functionsopen() modesread/write pointer positioning

3 Passing streams to functionsOverloading operators

Page 10: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

fstream

When the program opens a file for input, the program isreading from the file. When the program opens a file foroutput, the program is writing to the file. C++ provides uswith the ifstream, ofstream, and fstream classes for readingfrom and writing to files. All of these classes are availablethrough the fstream library, which means we must # include itin our code in order to use them:

# inc lude <f s t r e a m>

Page 11: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Input and output streams

o f s t r e a m w r i t e t o t h i s f i l e ;i f s t r e a m r e a d t h i s f i l e ;f s t r e a m r e a d o r w r i t e t o t h i s f i l e ;

• When the program opens a file for input, the program isreading from the file.

• When the program opens a file for output, the program iswriting to the file.

• ifstream, ofstream, and fstream classes are for readingfrom and writing to files, available through the fstreamlibrary, which means we must: # include <fstream>

• ofstream type (read that as “output file stream”) is usedto write data to files.

• ifstream type (”input file stream”) is used to read datafrom files.

• fstream (“file stream”) can combine the behavior ofifstream and ofstream and allow us to both read from andwrite to files

Page 12: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Outline

1 iostreamiostream hierarchy

2 File streamsBasic examples

fstream member functionsopen() modesread/write pointer positioning

3 Passing streams to functionsOverloading operators

Page 13: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Check out some examples

Page 14: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Member functions of the fstream objects

i f s t r e a m i n F i l e ( ” m y f i l e . t x t ” ) ;i n F i l e . i s o p e n ( ) ; // f o r example

The following member functions exist to check and managespecific states of a stream:

• is open() returns true if opened correctly• good() Returns true if the goodbit is set (the stream is ok)• bad() Returns true if the badbit is set (a fatal error

occurred)• eof() Returns true if the eofbit is set (the stream is at the

end of a file)• fail() Returns true if the failbit is set (a non-fatal error

occurred)• clear() Clears all flags and restores the stream to the

goodbit state• clear(state) Clears all flags and sets the state flag passed in• rdstate() Returns the currently set flags• setstate(state) Sets the state flag passed in

Page 15: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Check out some examples

Page 16: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Outline

1 iostreamiostream hierarchy

2 File streamsBasic examples

fstream member functionsopen() modesread/write pointer positioning

3 Passing streams to functionsOverloading operators

Page 17: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

file.open() modes

o f s t r e a m o u t F i l e ;o u t F i l e . open ( ” sample . t x t ” , MODE) ;

i f s t r e a m i n F i l e ;i n F i l e . open ( ” sample . t x t ” , MODE) ;

Where

• ios::app – append to end of file

• ios::ate – go to end of file on opening (default beginning)

• ios::binary – file open in binary mode

• ios::in – open file for reading only

• ios::out – open file for writing only

• ios::nocreate – open fails if the file does not exist

• ios::noreplace – open fails if the file already exist

• ios::trunc – delete the contents of the file if it exist

Page 18: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Check out some examples

Page 19: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Outline

1 iostreamiostream hierarchy

2 File streamsBasic examples

fstream member functionsopen() modesread/write pointer positioning

3 Passing streams to functionsOverloading operators

Page 20: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Read and write positions

i f s t r e a m i n f i l e ( ” m y f i l e . t x t ” ) ;i n f i l e . s e e k p (−10 , i o s : end ) // s t a r t a t end−10

• seekg() moves get pointer(input) to a specified location

• seekp() moves put pointer (output) to a specified location

• tellg() gives the current position of the get pointer

• tellp() gives the current position of the put pointer

Page 21: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Outline

1 iostreamiostream hierarchy

2 File streamsBasic examples

fstream member functionsopen() modesread/write pointer positioning

3 Passing streams to functionsOverloading operators

Page 22: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Streams to functions

Stream objects can be passed to functions like any other kindof object, but they must always be reference parameters.

Page 23: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Outline

1 iostreamiostream hierarchy

2 File streamsBasic examples

fstream member functionsopen() modesread/write pointer positioning

3 Passing streams to functionsOverloading operators

Page 24: iostream File Input/Output (File I/O)Overloading operators File Input/Output (File I/O) Comp Sci 1570 Introduction to C++ iostream iostream hierarchy File streams Basic examples fstream

iostream

iostreamhierarchy

File streams

Basic examples

fstreammemberfunctions

open() modes

read/writepointerpositioning

Passingstreams tofunctions

Overloadingoperators

Overloading operators

Check out the code for overloading the operator<< with astruct, and passing in a stream object