ďťż

Ładny brzuch

Chce zrobić coś takiego że mam liste dla klasy osoba, i chce sobie zapisać cała tą liste do pliki binarnego i potem ją odczytać.

Funkcje zapisujące:
void osoba::zapisz(char t[20]) { fstream os; os.open(t, ios::out | ios::binary | ios::app); os.write((char*)this,sizeof(osoba) + 2); os.close(); } void lista::zapisz() { node *tmp=inf.head; while(tmp!=NULL) { tmp->per.zapisz("save.bin"); tmp=tmp->next; } system("cls"); cout <<"Dane zostaly zapisane"; cin.ignore(); getchar(); }
Wczytające:
void lista::wczytaj() { system("cls"); fstream plik("save.bin"); char *dan=new char[1000]; for(int i=0;i<10;i++) { node *elem = new node; elem->per.wczytaj(plik); dodaj(elem); } cout <<"Dane zostaly wczytane"; cin.ignore(); getchar(); } void osoba::wczytaj(fstream &l) { l.read((char*)this,sizeof(osoba) + 2); }
Problem jest taki że jak widać wczytuje 10 rekordów, ale tylko pierwszy dobrze, nie wiem czemu... w pozostałych są tylko szczątki informacji.
Użytkownik migajek edytował ten post 19 maj 2007, 18:42
Powód edycji: codeboxy panie kolego


Ja miałem podobny problem w ANSI C. Może chodzi tu właśnie o "char*". Rzuć na to okiem: >> link <<

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