Liste komplett in Datei schreiben
-
Hallo,
gibt es die Möglichkeit eine Liste komplett mit einem Befehl in eine Datei zu schrieben und auch wieder zu laden?
Zur zeit mache ich das noch so umstänlich mit einer for-Schleife, solange Elemente in der Liste sind.So hab ich es zur Zeit:
ofstream datei_schreiben("buecher.lis"); for (i = listInt.begin(); i != listInt.end(); ++i) { datei_schreiben << (*i).getTitel().c_str() << endl; datei_schreiben << (*i).getAutor().c_str() << endl; datei_schreiben << (*i).getErsch_Jahr().c_str() << endl; datei_schreiben << (*i).getVerlag().c_str() << endl; datei_schreiben << (*i).getKategorie().c_str() << endl; datei_schreiben << (*i).getIsbn().c_str() << endl; datei_schreiben << (*i).getKaufpreis().c_str() << endl; datei_schreiben << (*i).getEntleiher().c_str() << endl; datei_schreiben << (*i).getEntleih_datum().c_str() << endl; datei_schreiben << (*i).getBeschreibung().c_str() << endl; } datei_schreiben.close();
Und so hätte ich es gerne, wenn möglich:
ofstream datei_schreiben("buecher.lis"); datei_schreiben << listInt; datei_schreiben.close();
Kann mir da jemand helfen?
Wäre für Hilfe sehr dankbar
-
hallo
[url]
http://www.c-plusplus.net/forum/viewtopic.php?t=39470
[/url]gruß elwida
-
Danke für den Link, habs mir mal durchgelesen udn es versucht, aber es klappt nicht.
Vielleicht liegt es daran, das in meiner Liste keine Strings sind sondern eine Klasse.
Hat noch jemand eine andere Möglichkeit oder einen Tipp?
-
du köntest für deine klasse den << operator
überladen, dann kannst du deine klasse speichern
wie ein string. analog dazu den >> operator
um die klasse wieder aus der datei zu lesen.gruß elwida
-
Und wie überlade ich den Operator?
-
ostream & operator << (ostream & os, DeinTyp const & foo) { os << foo.getTitel() << '\n' << foo.getAutor() << '\n' << ... ; return os; }
-
Also in der Klasse:
friend ostream& operator<<(ostream &ostr, const Typ &t) { return ostr << Typ.blabla << Typ.blablub; }
EDIT: Zu spät...
Code-Hacker