Vector in Datei schreiben
-
Wie kann ich den ganzen Vector auf einnmal in eine binäre Datei schreiben??
-
hi,
wozu in eine binaere datei? ich nehme an du willst die werte einfach nur speichern und beim naechsten programmstart wiederholen, stimmts?
dann wuerde ich einen ueber einen iterator den vektor traversieren und die werte zeile fuer zeile speichern.
beim naechsten programmstart natuerlich umgekehrt.
gruss,
tuxipuxi.
-
Ist das nicht sehr kompleziert?
Ich hab irgendwo gehört das man den Verctor ganz abspeichern kann und ihn dann einfach wieder binär auslesen kann, also so, das alle Strukturen und werte wieder gleich sind.Es ist leider bei großen Dateien mit vielen Datensätzen sehr umständlich jede einzelne Zeile einzulesen
Aber das mache ich, wenn ich keine andere Lösung finde.
-
Hi,
dafür kann man den ostream_iterator "mißbrauchen".
ein Bsp:std::vector<in> vek(10); std::ofstream datei("test.txt"); std::ostream_iterator<int> iter(datei,"\n") std::copy( vek.begin() , vek.end() , iter);
kopiert den gesamten vector vek in die Datei "test.txt", wovei die Elemente durch ein '\n' getrennt werden.
grüße Con@n
-
Das Problem ist, das du irgendwie noch die Grösse mit abspeichern musst.
Zumindest dann, wenn nach dem Vektor noch weitere Daten abgespeichert werden.
Sonst weisst du beim Lesen nicht mehr wo der Vektor aufhört.