[C++] Objekte in Datei speichern

Raven280438

Erfahrenes Mitglied
Hi,

ich habe in einem Programm verschiedene Objekte einer Klasse mit verschiedenen Attributen (int, string ...). Unter anderem auch ein Pfad zu einem Bild.

Ist es möglich die Objekte in einer Datei zu speichern, also auch die Bilder, nicht nur die Pfade.

Die Datei sollte nicht so einfach editierbar sein, also warscheinlich als Binärdaten.

Diese Datei möchte ich dann in einem anderen Programm auslesen und wieder zurück in Objekte speichern, und die Bilder in eigene Bild-Dateien.

Ist sowas möglich, ich habe keinen Ansatz wie ich da rangehn soll.



Gruß
 
Du kannst das mit der Klasse ofstream und ifstream erledigen, z.B:
C++:
int output = 8;
ofstream outputstream("test.dat", ios::binary);
outputstream.write((char*)&output, sizeof(output));
outputstream.close();

int input;
ifstream inputstream("test.dat", ios::binary);
inputstream.read((char*)&input, sizeof(input));
inputstream.close();

cout << input;

Aber bei dynamisch reservierten Variablen (mit new) geht das nicht so leicht.
 
Hi,

du kannst es eventuell mit <fstream> versuchen (ofstream und ifstream stammen davon).
Mit dynamisch reservierten variablen geht es genau so! Ich schreibe ständig erfolgreich irgendwelche binären dateien und verwende z.B. zum kopieren von Dateien diese Variante und erzeuge immer ein dynamisch erstelltes char-Array.
Link für fstream: http://www.willemer.de/informatik/cpp/fileop.htm

Wenn du mehrere sachen in eine Datei packst, musst du halt genau den Aufbau deiner eigenen Datei wissen. Z.B. in der ersten zeile sind die benötigten Zahlen, in der 2. die strings und ab einem gewissen Punkt in deiner Datei kommen die Bilder. Oder auch die ersten 512 Byte sind für Zahlen dann gibts 512 Bytes für die Strings usw.

gruß
 
Zurück