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(); }
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it Please indent your code. It's very difficult to follow if there's no indentation.
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it I don't know to indent. Please correct the error. The progaram is to copy content of a file to another file.
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it Here's some non-indented code: Code: int main() { printf("Hello\n"); return 0; } And here's some indented code (I used spaces): Code: int main() { printf("Hello\n"); return 0; } When you have multiple nested code blocks, indentation makes the code a lot more readable.
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it I have tried to intend it. Thank you very much for taking time. I am from India and here we learn about only basics of c++ and our syllabus is based on turbo c++ 3. So i use turbo c++ and i don't know much about c++ programing. So i cannot implement instructions you give on modern c++. I tried new changes. But i still have some little problems. The program is to transfer content of one file to another. When i input only one entry, the program works. But when more than one entry is used it out puts only 1 or 2. Kindly please correct the problem. Here is the new code by correcting the previous errors. 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(); }; void student::input() { char ch='y'; ofstream outf; outf.open("mark.dat"); while(ch=='y') { cout<<"Enter rollno, name and mark\n"; cin>>rollno>>name>>tm; outf.write((char*)this,sizeof(student)); 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.read(( char* )this,sizeof(student))) { outf.write(( char* )this,sizeof( student ) ); } outf.close(); inf.close(); } void student::output() { ifstream inf; inf.open("trans.dat"); while (inf.read((char*)this, sizeof(student))) { inf.read(( char* )this,sizeof( student ) ); cout<<"\nRollno "<<rollno; cout<<"\tName "<<name; cout<<"\tTotal "<<tm<<'\n'; } inf.close(); } void main() { clrscr(); student obj; obj.input(); obj.transfer(); obj.output(); getch(); }
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it Don't PM me to demand answers please. What input do you give, and what output do you get? Enter say 3 or 4 records and use copy and paste to paste the resulting screen exactly - showing both data entered and results. Paste into a code block to maintain formatting. I am a little concerned by "inf.read(( char* )this,sizeof(student))" and the write equivalent. If these functions are designed for text then the data should be converted to text, not just cast to char*. Apart from this the code seems to be OK so the input and output should help me see what's going wrong.
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it At last my program to transfer content of one file to another. Here is the full program for further reference to other users. 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(); }; void student::input() { char ch='y'; ofstream outf; outf.open("mark.dat"); while(ch=='y') { cout<<"Enter rollno, name and mark\n"; cin>>rollno>>name>>tm; outf.write((char*)this,sizeof(student)); 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.read(( char* )this,sizeof(student))) { outf.write(( char* )this,sizeof( student ) ); } outf.close(); inf.close(); } void student::output() { ifstream inf; inf.open("trans.dat"); while (inf.read((char*)this, sizeof(student))) { cout<<"\nRollno "<<rollno; cout<<"\tName "<<name; cout<<"\tTotal "<<tm<<'\n'; } inf.close(); } void main() { clrscr(); student obj; obj.input(); obj.transfer(); obj.output(); getch(); }
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it I really like this approach and some repu your way
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it Thank you very much admin. I also had a forum like this. But now its down. I am after the exams.
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it PM me the url if you want to.
Re: Please correct the error in my program. When i run the program on turbo c++ 3, it *slaps forehead* Yes, that would cause the problem: Code: while (inf.read((char*)this, sizeof(student))) { inf.read(( char* )this,sizeof( student ) ); Easy mistake to make!