In this post we will write a C++ program to search a record from file.

C++ program to search a record from file


C++ program to search a record from file.

#include<iostream>
#include<conio.h>
#include<fstream>
#include<process.h>
#include<string.h>

using namespace std;

struct record
{
    char name[15];
};

int main()
{
    char ch = 'y';
    char fname[15];
    int t = 0;
    int rn = 0;

    system("cls");

    record rec;
    ofstream fil("abc.rec",ios::binary);

    if(!fil)
    {
        cerr<<"File opening error";
        getch();
        exit(0);
    }

    while(ch != 'n')
    {
        std::cout<<"Enter the name = ";
        std::cin>>rec.name;
        fil.write((char*)&rec, sizeof(rec));

        std::cout<<"Do you want to enter more record (Y/N) = ";
        std::cin>>ch;
    }

    fil.close();
    ifstream sec("abc.rec", ios::binary);

    if(!sec)
    {
        cerr<<"File opening error";
        getch();
        exit(0);
    }

    std::cout<<std::endl;
    std::cout<<"Enter the name you want to search = ";
    std::cin>>fname;

    while(sec.read((char*)&rec, sizeof(rec)))
    {
        if(strcmp(fname, rec.name) == 0)
        {
            rn = ((rn - 1)*sizeof(rec));
            sec.seekg(rn);
            std::cout<<rec.name<<std::endl;
            sec.close();

            t = 1;
        }
        rn++;
    }

    if(t == 0)
        std::cout<<"Name does not exit"<<std::endl;

    getch();
    return 0;
}



Output

Enter the name = ABC
Do you want to enter more recored (Y/N) = y
Enter the name = XYZ
Do you want to enter more recored (Y/N) = n

Enter the name you want to search = ABC
Given name is found = ABC