ďťż

Ładny brzuch

Witam, mam następującą strukturę:
struct os{ string Imie; string Nazwisko; int RokStudiow; string KierunekStudiow; int id; }; struct list{ os student; list* pop; list* nast; };
Mam umożliwić użytkownikowi wiele funkcjonalności - np. dodawanie studenta, usuwanie, itp. Problem mam przy wczytywaniu wszystkich rekordów wcześniej zapisanych do pliku(ja zapisuje do txt).
Funkcja zapisująca:
void zapisz(list* wl) { if(lr!=0) { cout<<"Podaj nazwe pliku: "; char fileName[80]; cin>>fileName; ofstream fout(fileName);fout<<lr<<endl; while(wl!=NULL) { fout<<wl->student.id<<" "<<wl->student.Imie<<" "<<wl->student.Nazwisko<<" "<<wl->student.KierunekStudiow<<" "<<wl->student.RokStudiow<<"\n"; wl=wl->pop; } fout.close(); } else{cout<<"nie ma bazy"; system("pause");} }

gdzie: lr-ilosc rekordów w bazie;
W main:
list* lista = new list; lista=NULL; glowa = new list; glowa = NULL;

Problem ma z tą funkcją:
void wczytaj(list* &wl) { cout<<"Podaj nazwe pliku: "; char fileName[80]; cin>>fileName; list* nowy = new list; char ch; int ilosc; ifstream fin(fileName); if(fin) { fin>> ilosc; cout<<"Ilosc elementow w bazie: "<<ilosc<<"\n"; while(!fin.eof()) { fin>>nowy->student.id>>nowy->student.Imie>>nowy->student.Nazwisko>>nowy- >student.KierunekStudiow>>nowy->student.RokStudiow; lr++; lr2++; if(lr==1) {glowa = nowy;} nowy->pop = wl; wl = nowy; if(lr!=1) {wl->pop->nast = wl;} } } else { cout<<"nie ma takiego pliku..."; } fin.close(); system("pause"); }
lr2 - to po prostu id;

Przy tym zapisie program się zapętla, kiedy chcę wyświetlić całą bazę. Cały czas wypisuje mi pierwszą linijkę z pliku.

Ma ktoś, jakieś propozycję jak można poprawić to, abym mógł wczytać wszystkie linijki?

P.S:
wiem, że mogłem użyć class, ale w tym wypadku to nie ma różnicy pomiędzy klasą, a strukturą.

//po co tworzysz dwa tematy? -katarina

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •