Class 12 Exam  >  Class 12 Notes  >  COMPUTER SCIENCE for Class 12(XII) - CBSE & NCERT Curriculum  >  Chapter 3 - DATA FILE HANDLING IN Cpp , Chapter Notes, Class 12, Computer Science

Chapter 3 - DATA FILE HANDLING IN Cpp , Chapter Notes, Class 12, Computer Science | COMPUTER SCIENCE for Class 12(XII) - CBSE & NCERT Curriculum PDF Download

Chapter 3 - DATA FILE HANDLING IN Cpp , Chapter Notes, Class 12,  Computer Science
 

DATA FILE HANDLING IN C++

File
• A file is a stream of bytes stored on some secondary storage devices.
• Text file: A text file stores information in readable and printable form. Each line of text is
terminated with an EOL (End of Line) character.
• Binary file: A binary file contains information in the non-readable form i.e. in the same
format in which it is held in memory.
 

File Stream
• Stream: A stream is a general term used to name flow of data. Different streams are used
to represent different kinds of data flow.
• There are three file I/O classes used for file read / write operations.
             o ifstream - can be used for read operations.
             o ofstream - can be used for write operations.
             o fstream - can be used for both read & write operations.
fstream.h:
 • 
This header file includes the definitions for the stream classes ifstream, ofstream and
fstream. In C++ file input output facilities implemented through fstream.h header file.
• It contain predefined set of operation for handling file related input and output, fstream
class ties a file to the program for input and output operation.
• A file can be opened using:
                         o the constructor method. This will use default streams for file input or output. This method                              is preferred when file is opened in input or output mode only.
                           Example : ofstream file(“student.dat”); or ifstream file(“student.dat”);

                           o the open() member function of the stream. It will preferred when file isopened in various                                modes i.e ios::in, ios::out, ios::app, ios::ate etc. e.g fstream file;

file.open(“book.dat”, ios::in | ios::out | ios::binary);
 

File modes:
• ios::out It open file in output mode (i.e write mode) and place the file pointer in beginning, if file already exist it will overwrite the file.

• ios::in It open file in input mode(read mode) and permit reading from the file.

• ios::app It open the file in write mode, and place file pointer at the end of file i.e to add new contents and retains previous contents. If file does not
exist it will create a new file.
• ios::ate It open the file in write or read mode, and place file pointer at the end of file i.e input/ output operations can performed anywhere in the file.
• ios::trunc It truncates the existing file (empties the file).
• ios::nocreate If file does not exist this file mode ensures that no file is
created and open() fails.
• ios::noreplace If file does not exist, a new file gets created but if the file
already exists, the open() fails.
• ios::binary Opens a file in binary mode.
eof(): This function determines the end-of-file by returning true(non-zero) for end of file
otherwise returning false(zero).
close(): This function terminates the connection between the file and stream associated with it.
Stream_object.close(); e.g file.close();

Question for Chapter 3 - DATA FILE HANDLING IN Cpp , Chapter Notes, Class 12, Computer Science
Try yourself:
What are the three file I/O classes used for file read/write operations?
View Solution

Text File functions:
Char I/O :
  get() – 
read a single character from text file and store in a buffer. e.g file.get(ch);
 put() - writing a single character in textfile e.g. file.put(ch);
getline() - read a line of text from text file store in a buffer. e.g file.getline(s,80);


We can also use file>>ch for reading and file<<ch writing in text file. But >> operator
does not accept white spaces.
Binary file functions:
 

read()- read a block of binary data or reads a fixed number of bytes from the specified
stream and store in a buffer.
Syntax : Stream_object.read((char *)& Object, sizeof(Object));
e.g file.read((char *)&s, sizeof(s));
 

write() – write a block of binary data or writes fixed number of bytes from a specific
memory location to the specified stream.
Syntax : Stream_object.write((char *)& Object, sizeof(Object));
e.g file.write((char *)&s, sizeof(s));

Note:
 Both functions take two arguments.
 • The first is the address of variable, and the second is the length of that variable in bytes. The
 address of variable must be type cast to type char*(pointer to character type)

• The data written to a file using write( ) can only be read accurately using read( ).
 

File Pointer: The file pointer indicates the position in the file at which the next input/output is to
occur.
Moving the file pointer in a file for various operations viz modification, deletion , searching
 etc. Following functions are used:

 

seekg(): It places the file pointer to the specified position in input mode of file.
e.g file.seekg(p,ios::beg); or file.seekg(-p,ios::end), or file.seekg(p,ios::cur)
i.e to move to p byte position from beginning, end or current position.
 

seekp(): It places the file pointer to the specified position in output mode of file.
e.g file.seekp(p,ios::beg); or file.seekp(-p,ios::end), or file.seekp(p,ios::cur)
i.e to move to p byte position from beginning, end or current position.
 

tellg(): This function returns the current working position of the file pointer in the input mode.
e.g int p=file.tellg();
tellp(): This function returns the current working position of the file pointer in the output mode.
e.f int p=file.tellp();
 

Steps To Create A File

  •  Declare an object of the desired file stream class(ifstream, ofstream, or fstream)
  •  Open the required file to be processed using constructor or open function.
  •  Process the file.
  •  Close the file stream using the object of file stream.

General program structure used for creating a Text File
 

To create a text file using strings I/O
#include<fstream.h> //header file for file operations
void main()
{
char s[80], ch;
ofstream file(“myfile.txt”); //open myfile.txt in default output mode
do
{ cout<<”
enter line of text”;
gets(s); //standard input
file<<s; // write in a file myfile.txt
cout<<” more input y/n”;
cin>>ch;
}while(ch!=’n’||ch!=’N’);
file.close();
} //end of main

To create a text file using characters I/O
#include<fstream.h> //header file for file operations
void main()
{
char ch;
ofstream file(“myfile.txt”); //open myfile.txt in default output mode
do{
ch=getche();
if (ch==13) //check if character is enter key
cout<<’ ’;
else
file<<ch; // write a character in text file ‘myfile.txt ‘
} while(ch!=27); // check for escape key
file.close();
} //end of main

 

Text files in input mode:
 

To read content of ‘myfile.txt’ and display it on monitor.
#include<fstream.h> //header file for file operations
void main()
{
char ch;
ifstream file(“myfile.txt”); //open myfile.txt in default input mode
while(file)
{ file.get(ch) // read a
character from text file ‘
myfile.txt’
cout<<ch; // write a character in text file ‘myfile.txt ‘
}
file.close();
} //end of main

 

Binary file using Objects and other file operations:


Consider the following class declaration then write c++ function for following file operations
 viz create_file, read_file, add new records, modify record, delete a record, search for a
 record.

 

#include<iostream.h>
class student
{
int rno;
char name[30];
int age;
public:
void input()
{
cout<<” enter roll no”;
cin>>rno;
cout<<” enter name “;
gets(name);
cout<<” enter age”;
cin>>age;
}
void output()
{
cout<< “ roll no:”<<rno;
cout<< “ name :”<<name;
cout<< “ age:”<<age;
}
int getrno() { return rno;}
};
void create_file()
{
ofstream fout;
char ch;
fout.open(“student”, ios::out | ios:: binary);

clrscr();
student s;
if(!fout)
{cout<<“File can’t be opened”;
break;
}
do
{
s.input();
cout<<” more record y/n”;
cin>>ch;
}while(ch!=’n’ || ch!=’N’);
fout.close();
}
void read_file()
{
ifstream fin;
student s;
fin.open(“student.dat”,ios::in | ios:: binary);
fin.read((char *) &s,sizeof(student));
while(file)
{
s.output();
cout<< “ ”;
fin.read((char *) & s,sizeof(student));
}
fin.close();
}
void modify_record()
{ student s;
fstream file;
file.open(“student.dat”,ios::in|ios::out|ios::ate|ios::binary);
int r,pos=-1;
cout<<” enter the rollo no of student whom data to be modified”;
cin>>r;
file.read((char *)&s,sizeof(s));
while(file)
{
if (r==s.getrno())
{c
out<<” record is “;
s.output();
pos =file.tellg()-size(s);
break;
}
file.read((char *)&s,sizeof(s));
}
if(pos>-1)
{c
out<< “ enter new record”;
s.input();
file.seekp(pos,ios::beg);
file.write((char *)&s,sizeof(s));
cout<< “ record modified successfully”;
}
else
cout<< “ record not exist”;
}
46
void delete_record()
{f
stream file(“student.dat”, ios::in|ios::binary);
fstream newfile(“newstu.dat”,ios::out|ios::binary);
student s;
cout<<” enter the rollno no of student whom record to be deleted”;
cin>>r;
file.read((char *)&s,sizeof(s));
while(file)
{
if (r!=s.getrno())
{
newfile.write((char *)&s,sizeof(s));
}
file.read((char *)&s,sizeof(s));
}
file.close();
newfile.close();
}
void search_record()
{
student s;
fstream file;
file.open(“student.dat”,ios::in|os::binary);
int r,flag=-1;
cout<<” enter the rollo no of student whom record to be searched”;
cin>>r;
file.read((char *)&s,sizeof(s));
while(file)
{
if (r==s.getrno())
{c
out<<” record is “;
s.output();
flag=1;
break;
}
file.read((char *)&s,sizeof(s));
}
if(flag==1)
cout<< “ search successfull”;
else
cout<< “ search unsuccessfull”;
file.close();
}

The document Chapter 3 - DATA FILE HANDLING IN Cpp , Chapter Notes, Class 12, Computer Science | COMPUTER SCIENCE for Class 12(XII) - CBSE & NCERT Curriculum is a part of the Class 12 Course COMPUTER SCIENCE for Class 12(XII) - CBSE & NCERT Curriculum.
All you need of Class 12 at this link: Class 12
9 docs

FAQs on Chapter 3 - DATA FILE HANDLING IN Cpp , Chapter Notes, Class 12, Computer Science - COMPUTER SCIENCE for Class 12(XII) - CBSE & NCERT Curriculum

1. What is data file handling in C++?
Ans. Data file handling in C++ is the process of storing and retrieving data from a file. It allows the programmer to store data in a file for future use or to retrieve data from a file that was stored previously.
2. What are the different file modes in C++?
Ans. C++ supports various file modes, such as input mode (read-only), output mode (write-only), and append mode (write-only at the end of the file). The file mode can be specified using the ios::in, ios::out, and ios::app flags.
3. How to open a file in C++?
Ans. To open a file in C++, the programmer needs to declare an object of the fstream class and use the open() method to open a file. For example, fstream file("filename.txt", ios::in); This statement opens a file named "filename.txt" in input mode.
4. How to read data from a file in C++?
Ans. To read data from a file in C++, the programmer needs to declare an object of the fstream class and use the >> operator to read data from the file. For example, fstream file("filename.txt", ios::in); int num; file >> num; This statement reads an integer value from the file and stores it in the variable num.
5. How to write data to a file in C++?
Ans. To write data to a file in C++, the programmer needs to declare an object of the fstream class and use the << operator to write data to the file. For example, fstream file("filename.txt", ios::out); int num = 10; file << num; This statement writes an integer value to the file.
9 docs
Download as PDF
Explore Courses for Class 12 exam
Signup for Free!
Signup to see your scores go up within 7 days! Learn & Practice with 1000+ FREE Notes, Videos & Tests.
10M+ students study on EduRev
Related Searches

Semester Notes

,

Extra Questions

,

video lectures

,

Chapter Notes

,

study material

,

Free

,

Computer Science | COMPUTER SCIENCE for Class 12(XII) - CBSE & NCERT Curriculum

,

MCQs

,

practice quizzes

,

pdf

,

Chapter Notes

,

Important questions

,

ppt

,

Viva Questions

,

Chapter 3 - DATA FILE HANDLING IN Cpp

,

Class 12

,

past year papers

,

shortcuts and tricks

,

Sample Paper

,

Chapter 3 - DATA FILE HANDLING IN Cpp

,

Previous Year Questions with Solutions

,

Exam

,

Computer Science | COMPUTER SCIENCE for Class 12(XII) - CBSE & NCERT Curriculum

,

Computer Science | COMPUTER SCIENCE for Class 12(XII) - CBSE & NCERT Curriculum

,

Chapter 3 - DATA FILE HANDLING IN Cpp

,

mock tests for examination

,

Summary

,

Objective type Questions

,

Class 12

,

Chapter Notes

,

Class 12

;