2
2
h>
#include<stdlib.h>
#include<iostream>
#include<fstream>
#include<stdlib.h>
#include<string.h>
class student
{
public:
char name[15],usn[15],age[5],sem[5],branch[15],buffer[45];
};
student s2[100];
count = strlen(s.buffer);
int t = 45 - (count+2);
cout<<"count "<<t;
void search()
{
fstream in;
char usn[15],extra[45];
in.open("student.txt",ios::in);
if(!in)
{
cout<<"\nUnable to open the file in input mode";
return;
}
cout<<"\nEnter the record's usn you want to search = ";
cin>>usn;
student s;
//Unpacking the record
while(!in.eof())
{
in.getline(s.name,15,'|');
in.getline(s.usn,15,'|');
in.getline(s.age,5,'|');
in.getline(s.sem,5,'|');
in.getline(s.branch,15,'!');
in.getline(extra,45,'\n');
if(strcmp(s.usn,usn)==0)
{
cout<<"\n Record found";
cout<<"\n"<<s.name<<"\t"<<s.usn<<"\t"<<s.age<<"\t"<<s.sem<<"\t"<<s.branch;
return;
}
}
cout<<"/n Record not found";
return;
}
void displayFile()
{
student s;
int c,I;
char extra[45];
fstream in;
in.open("student.txt",ios::in);
if(!in)
{
cout<<"\ncannot open the file in output mode";
return;
}
I=0;
printf("Name\t\tUsn\t\tAge\t\tSem\t\tBranch\n");
while(!in.eof())
{
in.getline(s.name,15,'|');
in.getline(s.usn,15,'|');
in.getline(s.age,5,'|');
in.getline(s.sem,5,'|');
in.getline(s.branch,15,'!');
in.getline(extra,45,'\n');
printf("\n%s\t\t%s\t\t%s\t\t%s\t\t%s",s.name,s.usn,s.age,s.sem,s.branch);
I++;
}
in.close();
}
void modify()
{
fstream in;
char usn[15],buffer[45],extra[45];
int I,j;
student s1[100];
in.open("student.txt",ios::in);
if(!in)
{
cout<<"\nUnable to open the file in input mode";
return;
}
cout<<"\nEnter the usn";
cin>>usn;
I=0;
//Loading the file to Main memory
while(!in.eof())
{
in.getline(s1[I].name,15,'|');
in.getline(s1[I].usn,15,'|');
in.getline(s1[I].age,5,'|');
in.getline(s1[I].sem,5,'|');
in.getline(s1[I].branch,15,'!');
in.getline(extra,45,'\n');
I++;
}
I--;
for(j=0;j<I;j++)
{
if(strcmp(usn,s1[j].usn)==0)
{
cout<<"\nThe old values of the record with usn "<<usn<<" are "; cout<<"\nname =
"<<s1[j].name;
cout<<"\nusn = "<<s1[j].usn;
cout<<"\nage = "<<s1[j].age;
cout<<"\nsem = "<<s1[j].sem;
cout<<"\nbranch = "<<s1[j].branch;
break;
}
}
if(j==I)
{
cout<<"\nThe record with usn "<<usn<<" is not present";
return;
}
in.close();
fstream out1;
out1.open("student.txt",ios::out);
if(!out1)
{
cout<<"\nUnable to open the file in output mode";
return;
}
for(j=0;j<I;j++)
{
strcpy(buffer,s1[j].name);
strcat(buffer,"|");
strcat(buffer,s1[j].usn);
strcat(buffer,"|");
strcat(buffer,s1[j].age);
strcat(buffer,"|");
strcat(buffer,s1[j].sem);
strcat(buffer,"|");
strcat(buffer,s1[j].branch);
int count=strlen(buffer);
count += 3;
for(int k=0; k < (45 - count); k++)
strcat(buffer,"!");
strcat(buffer,"\n");
out1<<buffer;
}
out1.close();
int main()
{
int choice;
for(;;)
{
cout<<"\n0:exit";
cout<<"\n1:write to file";
cout<<"\n2:display the file";
cout<<"\n3:modify the file";
cout<<"\n4:search";
cout<<"\n\nEnter the choice";
cin>>choice;
switch(choice)
{
case 1:writeRecord();
break;
case 2:displayFile();
break;
case 3:modify();
break;
case 4:search();
break;
case 0:exit(0);
default:cout<<"\nInvalid input....";
break;
}
}
}