CPP Slide5
CPP Slide5
File I/O
1 12/5/2017
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
2 12/5/2017
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
3 12/5/2017
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
4 12/5/2017
Introduction
Two file streams based on mode
Input file stream – mode designated as input
Output file stream – mode designated as output
Disk
#include <ftream.h> Output file stream
int main()
{
…. Input file stream
return 0;
}
5 12/5/2017
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
6 12/5/2017
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
7 12/5/2017
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
8 12/5/2017
C++ File I/O
To perform file I/O, the header file fstream 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
9 12/5/2017
File processing
In file processing, files are generally classified into
two as
Text file
its content is treated as a sequence of characters
can be accessed sequentially
E.g. the value int count 321 stored in three byte
considering the digit sequence „3‟, „2‟, „1‟
Binary file
record sequence in a binary format
E.g. the value int count 321 stored in two byte
since int requires two byte to store any of its value
0000 0001 0100 0001
10 12/5/2017
Text File Processing
File processing involves the following major steps
Declaring file variable identifier
Opening the file
Processing the file
Closing the file when process is completed.
11 12/5/2017
Using Files
1: To access file handling routines:
#include <fstream>
int main () {
ofstream myfile;
myfile.open ("example.txt");
myfile << "Writing this to a file.\n";
myfile.close();
return 0;
}
This code creates a file called example.txt and inserts
a sentence into it in the same way we are used to do
with cout, but using the file stream myfile instead.
18 12/5/2017
#include <iostream>
#include <fstream>
#include <string.h>
int main () {
string line;
ifstream myfile ("example.txt");
if (myfile.is_open())
{ while (! myfile.eof() )
{ getline (myfile,line);
cout << line << endl;
}
myfile.close();
}
else cout << "Unable to open file";
return 0;
}
o reads a text file and prints out its content on the screen
19 12/5/2017
Checking state flags
•There are functions that check the state of a stream
with bool return type
Function Description