CPP Chapter 7
CPP Chapter 7
File I/O
Introduction
Data hierarchy
0 and 1 (bits) –> Charcaters --> field ->Record -> files ->
database
Files:
Is a collection of data that is stored together under a
common name usually on a secondary storage device
E.g. the C++ programs that you store on a disk
Why use files?
Convenient way to deal with large quantities of data
Store data permanently (until file is deleted)
Avoid having to type data into program multiple times
Share data between programs
…introduction
Terminology
Input. Get input from/read a file.
Output. Put data into/write a file
To store and retrieve data on a file in C++ three items
are required:
A file
A file stream
A mode
…introduction
Files are physically stored on an external medium using
a unique name called external file name
Streams is a one way transmission path that is used to
connect a file stored on a physical device to a program.
I/O in C++ uses streams… flow of data into and/or out
of a program
A stream is a data type (like int, double), but with
special properties.
Associated with every file stream is a mode, which
determines the direction of data on transmission path
To and from a file
…introduction
Two file streams based on mode
Input file stream – mode designated as input
Output file stream – mode designated as output
Disk
#include <fstream.h> Output file stream
int main()
{
…. Input file stream
return 0;
}
…introduction
There are two types of streams
Text stream
A text stream is a sequence of characters
character translations may occur as required by the host environment
e.g.a new line may be converted to a carriage return/linefeed pair
may not be a one-to-one relationship between the characters that are written
Binary stream
A binary stream is a sequence of bytes
a one-to-one correspondence to those in the external device
To use files we need to know:
how to "connect" file to program
how to tell the program to read data
how to tell the program to write data
error checking and handling EOF
How to “disconnect” file from program
…introduction
You associate (connect) a stream with a specific file by
performing an open operation
Once a file is open, information can be exchanged
between it and a program – read and write operation
All streams are the same but all files are not
…introduction
You disassociate a file from a specific stream with a
close operation
All files are closed automatically when the program
terminates normally
Files are not closed when a program terminates abnormally
If you close a file opened for output, then contents, if
any, of its associated stream are written to the
external device
This process is referred to as flushing the stream
Each stream that is associated with a file has a file
control structure of type FILE
The standard streams
When program starts execution, three streams are
opened automatically.
stdin -- standard input -- cin
stdout -- standard output -- cout
stderr -- standard error -- cerr
C++ File I/O
To perform file I/O, the header file fstream.h is
required
fstream.h defines several classes, including ifstream,
ofstream, and fstream
ifstream - Can be used for File read/input operations
ofstream - Can be used for File write/output operations
fstream - Can be used for both read/write c++ file I/O operations
These classes are derived form istream, ostream,
istream and ostream are derived form ios
File processing
ofstream ios::out
ifstream ios::in
Function Description