This document provides an overview of file handling in C++. It discusses the need for data files and the two main types: text files and binary files. Text files store readable character data separated by newline characters, while binary files store data in the same format as memory. The key classes for file input/output in C++ are ifstream, ofstream, and fstream. Functions like open(), read(), write(), get(), put(), and close() are used to work with files. Files can be opened in different modes like append, read, or write and it is important to check if they open successfully.
1. FILE HANDLING IN C++
Presented to:- mrs. sonymol koshy
By:- PaPu kumar
section:- B
roll no.:- 2061424(47)
semester:- iii
2. CONTENTS OUTLINE
Data File Handling:
Need for a data file,
Types of data files – Text file and Binary file;
Text File:
Basic file operations on text file:
Creating/Writing text into file,
Reading and
manipulation of text from an already existing text File (accessing sequentially);
Binary File:
Creation of file,
Writing data into file,
Searching for required data from file,
Appending data to a file,
Insertion of data in sorted file,
Deletion of data from file,
Modification of data in a file;
Implementation of above mentioned data file handling in C++; Components of C++ to be
used with file handling:
3. CONTENTS OUTLINE
Header file:
fstream.h; ifstream, ofstream, fstream classes;
Opening a text file in in, out, and app modes;
open(),
get(),
put(),
getline() and
close() functions;
Detecting end-of-file (with or without using eof() function);
Opening a binary file using in, out, and app modes;
open(), read(), write() and close() functions;
4. All programs we looked earlier:
Introduction
input data from the keyboard.
output data to the screen.
Difficult to handle large amount of input data.
Output would also be lost as soon as we exit
from the program.
How do we store data permanently?.
We can use secondary storage device.
Data is packaged up on the storage device as data
structures called files.
5. Files (Streams)
Files are used to store data in a relatively permanent form, on floppy
disk, hard disk, tape or other form of secondary storage. Files can hold
huge amounts of data if need be. Ordinary variables (even records and
arrays) are kept in main memory which is temporary and rather limited in
size.
Lets put it in points…………..
6. 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.
8. Main memory
• Made up of RAM chips.
• Used to hold a program
when it is running,
including the values of its
variables (whether
integer, char, an array,
etc.)
Secondary memory
• Usually a disk drive (or
magnetic tape).
• Used to hold files (where a file
can contain data, a program,
text, etc.)
• Can hold rather large amounts
of data.
9. Main memory
• Can only hold relatively small amounts
of data.
• Is temporary (as soon as the program is
done or the power goes out all of these
values are gone).
• Gives fast access to the data (all
electronic).
Secondary memory
• Can hold rather large amounts of data.
• Is fairly permanent. (A file remains even if
the power goes out. It will last until you
erase it, as long as the disk isn't damaged,
at least.)
Access to the data is considerably slower
(due to moving parts).
10. I/O in C++
I/O in C++ uses streams
A Stream is a general name given to
flow of data.
11. Flow of Data….
PROGRAM
DEVICES OR
FILES
Input
Stream
>>
Output
Stream
<<
Data
Data
istream class ostream class
(Insertion
operator)
(Extraction
operator)
12. More About Files…..
Now 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
13. I/O in C++
Different streams are used to represent different kinds
of data flow.
Each stream is associated with a particular class, which
contains
member functions and
definitions for dealing with that particular kind of data
flow.
14. The following classes in C++ have
access to file input and output
functions:
ifstream
ofstream
fstream
File Related Classes
15. The Stream Class Hierarchy
ios
istream
get()
getline()
read()
>>
ostream
put()
write()
<<
fstreambase
iostream
Ifstream
Open()
Tellg()
Seekg()
Ofstream
Open()
Tellp()
Seekp()
fstream
NOTE : UPWARD ARROWS INDICATE
THE BASE CLASS
16. OPENING A FILE
1. By using the CONSTRUCTOR of the stream class.
ifstream transaction(“sales.dly”);
ofstream result(“result.02”);
2. By using the open() function of the stream class
ifstream transaction;
transaction.open(“sales.dly”);
(Associating a stream with a file)
17. File Mode Parameters
PARAMETER MEANING
ios::app Append to end-of file
ios::ate goto end of file on opening
ios::binary binary file
ios::in Open existing file for reading
ios::nocreate open fails if file doesn’t exist
ios::noreplace open fails if file already exists
ios::out creates new file for writing on
ios::trunc Deletes contents if it exists
The mode can combine two or more modes using bit wise or ( | )
18. Checking For Successful File Opening
ifstream transaction(“sales.dly”);
if (transaction == NULL)
{
cout<<“unable to open sales.dly”;
cin.get(); // waits for the operator to press any key
exit(1);
}
20. Types of Files
The two basic types of files are
Text files
&
Binary files
21. Text Files
A text file consists of readable characters separated into lines by
newline characters.
(On most PCs, the newline character is actually represented by the two-
character sequence of carriage return (ASCII 13), line feed (ASCII 10).
(n)
22. A binary file stores data to disk in the
same form in which it is represented in
main memory.
If you ever try to edit a binary file
containing numbers you will see that the
numbers appear as nonsense characters.
Binary Files
23. Not having to translate numbers into a
readable form makes binary files
somewhat more efficient.
Binary files also do not normally use
anything to separate the data into
lines.
Such a file is just a stream of data
with nothing in particular to separate
components.
Binary Files
24. When using a
binary file we
write whole record
data to the file at
once.
but the numbers in
the binary file will
not be readable in
this way.
When using a text
file, we write out
separately each of
the pieces of data
about a given
record.
The text file will be
readable by an
editor
Text Files Binary Files
25. for the text file we will
use the usual output
operator(<<) and will
output each of the
pieces of the record
separately.
with the text file we
will read each of the
pieces of record from
the file separately,
using the usual input
operator(>>)
For the binary file we
will use write to write to
the file,
With the binary file we
will use the read
function to read a
whole record,
The programs to create the data files will differ in how they
open the file and in how they write to the file.
26. :Sequential access. With this type of
file access one must read the data in
order, much like with a tape, whether
the data is really stored on tape or not.
Random access (or direct access). This
type of file access lets you jump to any
location in the file, then to any other,
etc., all in a reasonable amount of time.
Types of File Access