Please correct the error in my program. When i run the program on turbo c++ 3, it output 3 times. Also When i enter more than 1 entry only the last entry is outputted. Also it is outputted 3 times.
Code:
#include<fstream.h>
#include<iostream.h>
#include<conio.h>
class  student
{
int rollno;
char name[20];
int tm;
public:
void  input();
void transfer();
void output();
}
obj;
void  student::input()
{
char ch='y';
ofstream  outf;
outf.open("mark.dat");
while(ch=='y')
{
cout<<"Enter  rollno, name and  mark";
cin>>rollno>>name>>tm;
outf.write((char*)&obj,sizeof(obj));
cout<<"Wish  to enter more(Y/N)?\n";
cin>>ch;
}
outf.close();
}
void  student::transfer()
{
ofstream outf;
ifstream  inf;
inf.open("mark.dat");
outf.open("trans.dat");
while(inf)
{
inf.read((char*)&obj,sizeof(obj));
outf.write((char*)&obj,sizeof(obj));
}
outf.close();
inf.close();
}
void  student:utput()
{
ifstream  inf;
inf.open("trans.dat");
while(inf)
{
inf.read((char*)&obj,sizeof(obj));
cout<<"\nRollno  "<<rollno;
cout<<"\nName "<<name;
cout<<"\nTotal  "<<tm;
}
inf.close();
}
void  main()
{
clrscr();
student  obj;
obj.input();
obj.transfer();
obj.output();
getch();
}

Last edited by shabbir; 25Feb2009 at 09:36.. Reason: Code block