How come when you start the program the name, house, class get read from a file but when the print opion has been chosen the print function runs, but upon completion the name disappears?
Code:
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <conio.h>
#include <ctype.h>
#include <dos.h>
void print (void);
int records;
char name[20];
char house;
int set;
int main (void)
{
int ln;
char choice;
ifstream data (".\\Students.txt");
data >> name;
data >> house;
data >> set;
if (data == 0)
{
cout << "Error";
}
else
{
do
{
gotoxy(8,8);
cout << (char)218 << setw(21) << setfill((char)196) << (char)191 << endl;
gotoxy(7,9);
cout << (char)218 << (char)217 << setw(21) << setfill(' ') << (char)192 << setw(45) << setfill((char)196) << (char)191 << endl;
ln = 10;
do
{
gotoxy(7,ln);
cout << (char)179 << setw(67) << setfill(' ') << (char)179 << endl;
ln++;
} while (ln != 15);
gotoxy(7,15);
cout << (char)192 << setw(67) << setfill((char)196) << (char)217 << endl;
gotoxy(10,9);
cout << "STUDENT RECORDS...";
gotoxy(7,17);
cout << (char)218 << setw(67) << setfill((char)196) << (char)191 << endl;
ln = 18;
do
{
gotoxy(7,ln);
cout << (char)179 << setw(67) << setfill(' ') << (char)179 << endl;
ln++;
} while (ln != 22);
gotoxy(7,22);
cout << (char)192 << setw(67) << setfill((char)196) << (char)217 << endl;
gotoxy(9,19);
cout << "Press 'A' to add new record, 'P' to print records, 'N' to view";
gotoxy(9,20);
cout << "next record or 'R' to return to main menu.";
do
{
gotoxy(9,11);
cout << "Name: " << name;
gotoxy(9,12);
cout << "House: " << house;
gotoxy(9,13);
cout << "Class: " << set;
data >> name;
data >> house;
data >> set;
gotoxy(60,20);
cin >> choice;
choice = toupper (choice);
} while (choice == 'N');
data.close();
switch (choice)
{
case 'A':
break;
case 'P': print();
break;
case 'R':
break;
default: cout << "Error";
}
} while (choice != 'R');
}
return 0;
}
void print (void)
{
ifstream data (".\\Students.txt");
ofstream printer ("LPT1");
records = 0;
clrscr();
gotoxy(31,13);
cout << "Printing, Students.txt" << endl;
gotoxy(22,16);
cout << setw(40) << setfill('=') << endl;
gotoxy(22,18);
cout << setw(40) << setfill('=') << endl;
delay(1000);
gotoxy(23,17);
cout << setw(38) << setfill('>') << endl;
delay(1000);
printer << "data.txt" << endl;
printer << "-----------------------------------------------------------------------------" << endl;
printer << " Page 1" << endl;
do
{
data >> name;
data >> house;
data >> set;
printer << name << " ";
printer << house << " ";
printer << set << endl;
records++;
} while (!data.eof());
printer << "-----------------------------------------------------------------------------" << endl;
printer << " Records in file: " << records << endl;
printer << "-----------------------------------------------------------------------------" << endl;
printer << "\f";
printer.close();
data.close();
}