ostringstream - Zurücksetzen
-
Morgen.
Ich nutze einen ostringstream (NICHT ostrstream) um ein paar Ausgaben für ein Werkzeug zu erzeugen. Naja, eigentlich mehr als ein "paar" Ausgaben. Ich erzeuge Eingabedateien für ein wichtiges Programm.
Nun habe ich das Problem, daß in einer Ausgabe plötzlich Fragmente einer vorhergehenden Ausgabe auftauchen. Letztlich ist die neue Zeile plötzlich genauso lang wie die vorhergehende und die "zusätzlichen Stellen" werden mit den Zeichen aus der vorhergehenden Ausgabe gefüllt.
Der Ablauf:
Funktion write(std::string) schreibt einen String in eine Datei, fügt einen Zeilenwechsel ein und gibt die neuen Daten bekannt.ostringstring os;
os << "text" << " " << daten << " " << etc;
write(os.str());
os.clear();
os.seekp(0);os << "kürzerer text";
write(os.str()); // <--- os enthält mehr Daten, als es sollte.Irgendwelche Tipps, Hinweise, Unterstützung? Wäre sehr dankbar

Gruss
Sid
-
clear() setzt nur eventuelle Fehlerflags zurück, um den Puffer des Streams zu "erneuern", benötigst du "os.str("");".
-
Wie Schuppen von den Augen. Klar. Ich hatte halt std::string::clear im Kopf.
Gnaah. Danke
