Witam, mam do napisania program symulujący pracę biblioteki. Program sam w sobie działa, ale pozostała mi kwestia przechowywania danych - nie mogę ogarnąć, jak wczytać do klasy dane z pliku, w którym wcześniej zostały zapisane binarnie.
#include "Ksiazka.h"
#include "Czytelnik.h"
#include "Katalog_Czytelnik.h"
#include "Katalog_Ksiazka.h"
#include <fstream>
#include <sstream>
#include <istream>
void main()
{
Katalog_Ksiazka kat;
Katalog_Ksiazka nowy(30);
Ksiazka k1((string)"Trzeci blizniak", (string)"Ken Follett", 492, (string)"Anglia", (string)"thriller");
Ksiazka k2((string)"Protokol budapesztanski", (string)"Adam LeBor", 447, (string)"Anglia", (string)"thriller");
Ksiazka k3((string)"Godzina zero", (string)"Agata Christie", 150, (string)"Anglia", (string)"kryminal");
Ksiazka k4((string)"Cpun", (string)"William S. Burroughs", 182, (string)"USA", (string)"dramat");
Ksiazka k5((string)"Szumowny", (string)"Isaac Bashevis Singer", 206, (string)"Polska", (string)"dramat");
Ksiazka k6((string)"Zamek", (string)"Franz Kafka", 378, (string)"Austria", (string)"psychologiczna");
Ksiazka k7((string)"W gore rzeki", (string)"Lorian Hemingway", 334, (string)"USA", (string)"dramat");
Ksiazka k8((string)"Historia zyda Wiecznego Tulacza", (string)"Jean d'Ormesson", 615, (string)"Francja", (string)"historyczna");
Ksiazka k9((string)"Napij sie z diablem", (string)"Jack Higgins", 270, (string)"Anglia", (string)"sensacyjna");
Ksiazka k10((string)"Dopuszczalne ryzyko", (string)"Robin Cook", 350, (string)"USA", (string)"thriller");
kat.DodajK(k1);
kat.DodajK(k2);
kat.DodajK(k3);
kat.DodajK(k4);
kat.DodajK(k5);
kat.DodajK(k6);
kat.DodajK(k7);
kat.DodajK(k8);
kat.DodajK(k9);
kat.DodajK(k10);
fstream str;
fstream str2;
str2.open("katalogk.txt", ios::in | ios_base::binary);
if (str2.good() == true)
{
str2.read((char*)&nowy, sizeof(nowy));
str2.close();
}
else cout << "brak dostepu do pliku" << endl;
nowy.Drukuj_Katalog();
str.open("katalogk.txt", ios::out | ios::trunc | ios_base::binary);
str.write((char*)&kat, sizeof(kat));
str.close();
getchar();
}
Tu mam przykładowe tworzenie katalogu książek i co dziwne (albo też nie) w momencie, gdy odpalę w programie najpierw zapis klasy 'kat' do pliku, a potem jej wczytanie z pliku do klasy 'nowy' wszystko działa, natomiast, gdy mam już przygotowany plik binarny z katalogiem i odpalę tylko wczytanie, to nie działa.
Ma ktoś pomysł, czemu tak się dzieje i jak sobie z tym poradzić?