ostream_iterator läuft, istream_iterator nicht
-
Hallo,
immer noch mit dem Thema 'Vector von Structs verwalten' unterwegs, bin ich mittlerweile dahin vorgedrungen, wie ich meinen Vector per ostream_iterator 'in einem Rutsch' speichern kann. Der anschließende Blick in die Datei zeigt, dass alle Daten lesbar angekommen sind.
ofstream f(txt_Pfad->Text.c_str()); copy(gvBenutzer.begin(), gvBenutzer.end(), ostream_iterator<TBenutzer> ( f, "\n") );
Dabei ist gvBenutzer der Vector, TBenutzer das Struct.
Zum Wiedereinlesen der Daten benutze ich folgenden Code:
ifstream f(txt_Pfad->Text.c_str()); copy( istream_iterator<TBenutzer>(f), istream_iterator<TBenutzer>(), back_inserter( gvBenutzer ) );
Gelesen wird offensichtlich, aber angezeigt wird nur kryptisches Zeug.
Was mache ich falsch?Leo
-
Funktioniert dein std::istream & operator>>(std::istream & s, TBenutzer & tb)?
-
Helium schrieb:
Funktioniert dein std::istream & operator>>(std::istream & s, TBenutzer & tb)?
Sorry, mir ist der Zusammenhang zwischen meiner Frage und Deiner Antwort nicht klar!?
Wie kann ich testen, ob mein std::istream ... funktioniert?
Leo
-
Zum Lesen vom Stream (auch über den Iterator) wird der von Helium genannte op>> benutzt. Es ist also wichtig, daß dieser korrekt funktioniert.
Teste doch mal, ob Du mit
TBenutzer b;
cin >> b;bei korrekter Eingabe nen vernünftigen Benutzer rauskriegst. Das ist erstmal Voraussetzung.
MfG Jester