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


Anmelden zum Antworten