Hi Leute,
Folgendes Problem: ich erzeuge mir eine Datei:
später öffne ich sie um daten hinein zuschreiben. Zunächst wird direkt ein Objekt dbh geschschrieben:
in einer Schleife schreibe ich dann eine Menge von Objekten aus einem Container:
Nun mein Problem: Ich schreibe zu testzwecken zunächst 10 mal das gleiche Objekt in die Datei, dann 100 mal und auf einmal hat die Datei mind. ein Byte zu viel. Das Auslesen der Objekte klappt dann natürlich auch nicht mehr richtig.
Gibts dafür ne plausible Erklärung?
Vielen Dank und besten Gruß
Emu
Folgendes Problem: ich erzeuge mir eine Datei:
Code:
fstream rdb((filename+".rdb").c_str(), ios::out);
rdb.close()
später öffne ich sie um daten hinein zuschreiben. Zunächst wird direkt ein Objekt dbh geschschrieben:
Code:
fstream rdb((filename+".rdb").c_str(), ios::app);
rdb.write((char*)&dbh,sizeof(dbh));
in einer Schleife schreibe ich dann eine Menge von Objekten aus einem Container:
Code:
std::list<S>::iterator it = objects.begin();
do
{
rdb.write((char*)&(*it),sizeof(S));
it++;
}
while(it != objects.end());
Nun mein Problem: Ich schreibe zu testzwecken zunächst 10 mal das gleiche Objekt in die Datei, dann 100 mal und auf einmal hat die Datei mind. ein Byte zu viel. Das Auslesen der Objekte klappt dann natürlich auch nicht mehr richtig.
Gibts dafür ne plausible Erklärung?
Vielen Dank und besten Gruß
Emu