Задача: Программа считывает данные с файла (во вложении), заносит их в односвязный список, сразу же выводит таблицу с данными на экран. Проблема: Таблица пуста. Класс OutDB - наследник класса InDB. У обоих классов все методы и поля - public. В чём проблема - не пойму. Если засунуть всё в один класс - всё работает.
| Код | #include<iostream.h> #include<stdio.h> #include<conio.h> #include<iomanip.h> FILE *f;
class InDB { public: char name[5]; char brand[10]; int count; InDB *top; InDB *next; void ReadF(); } indb;
class OutDB : InDB { public: void WriteC(); } outdb;
void InDB::ReadF() { InDB *db=top; f=fopen("in.txt","r"); fscanf(f,"%s\n",db->name); fscanf(f,"%s\n",db->brand); fscanf(f,"%u\n\n",db->count); db->next=NULL; while(!feof(f)) { db->next=new InDB; db=db->next; fscanf(f,"%s\n",db->name); fscanf(f,"%s\n",db->brand); fscanf(f,"%u\n\n",&(db->count)); db->next=NULL; } fclose(f); };
void OutDB::WriteC() { InDB *db=top; cout<<"############################\n"; cout<<"# Name # Brand # Count #\n"; cout<<"############################\n"; while(db) { cout<<"#"<<setw(5)<<db->name<<" #"<<setw(10)<<db->brand<<" #"<<setw(6)<<db->count<<" #"<<endl; db=db->next; } cout<<"############################\n\n"; };
void main() { clrscr(); indb.ReadF(); outdb.WriteC(); getch(); } |
|