This article explains how to delete the content of a Binary File.
Given a binary file that contains the records of students, the task is to delete the record of the specified student. If the record of no such student exists, then print “record not found”.
Examples:
Input:
roll no: 1
Output
The deleted record is
roll no: 1
name: vinay
record successfully deleted
Input:
roll no: 2
Output:
record not found
Approach:
In this example, the existing roll number of the student whose record is to be deleted is taken from the user and we will create a new file in which we will write all the records of the first file except the record to be deleted and then delete the first file and rename new file with the name of the first file
Below are the various steps on how to do so:
- Step 1:Opening the file from which the record is to be deleted in reading mode here “he.dat”
- Step 2: Opening the file to which the new content is to be written in writing mode here “temp.dat”
- Step 3:Reading the file and Comparing the record roll no with that to be deleted
- Step 4: If during reading the roll number to be deleted exists then display it else write the record in temp.dat
- Step 5: Finally after reading the complete file delete the file “he.dat” and rename the new file “temp.dat” with “he.dat”
- Step 6: If in the file record exist then print the record and print record successfully deleted
- Step 7: If the roll number does not exists then print “record not found”.
Standard Library Functions used:
// to remove the file
remove("name_of_file");
// to rename file1 as file2
rename("name-of_file1", "name_of_file2");
Below is the implementation of the above approach:
#include <bits/stdc++.h>
using namespace std;
class abc {
int roll;
char name[20];
public :
void deleteit( int );
void testcase1();
void testcase2();
void putdata();
};
void abc::putdata()
{
cout << "roll no: " ;
cout << roll;
cout << "\nname: " ;
cout << name;
}
void abc::deleteit( int rno)
{
int pos, flag = 0;
ifstream ifs;
ifs.open( "he.dat" , ios::in | ios::binary);
ofstream ofs;
ofs.open( "temp.dat" , ios::out | ios::binary);
while (!ifs.eof()) {
ifs.read(( char *) this , sizeof (abc));
if (ifs) {
if (rno == roll) {
flag = 1;
cout << "The deleted record is \n" ;
putdata();
}
else {
ofs.write(( char *) this , sizeof (abc));
}
}
}
ofs.close();
ifs.close();
remove ( "he.dat" );
rename ( "temp.dat" , "he.dat" );
if (flag == 1)
cout << "\nrecord successfully deleted \n" ;
else
cout << "\nrecord not found \n" ;
}
void abc::testcase1()
{
int rno;
rno = 1;
deleteit(rno);
}
void abc::testcase2()
{
int rno;
rno = 4;
deleteit(rno);
}
int main()
{
abc s;
s.testcase1();
s.testcase2();
return 0;
}
|
Output:

to delete the record of the file
Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape,
GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out -
check it out now!
Last Updated :
11 Nov, 2019
Like Article
Save Article