stringstream wiederverwenden
-
Hi
ist es möglich einen stringstream erst zu füllen, dann auszulesen, zu lehren und dann wieder neu zu füllen(ohne das die bisherigen daten drinbleiben)?
ich hab das problem, das ich die daten im stream nicht mehr gelöscht bekomme. und daher dauernd was dranhäng. Und neuanlegen des stringstreams wollt ich eigentlich umgehen.stringstream sstream; sstream << "hallo world"; // sttream füllen string str = sstream.str(); // daten abholen cout << str; // abgeholten daten verarbeiten // den stream wieder in den ursprungszustand versetzen sstream.clear() // der löscht nur die flags aber nicht den inhalt grrr sstream << "ein neuer string"; // stream wieder von vorne füllen
Ich brauch das für einen kleinen logger.
Also ich hab mehre Threads die immer die gleiche aufgabe machen. (quasi in einer endlosschleife) Diese soll in einer Datei Protokolliert werden. Die Aufgabe die abgearbeitet wird bestheht aus mehren Aktifitäten/Einträgen.
Geplant ist es für jeden Log einer Aufgabe eine Zeile zu verwenden ( z.B. "13.04.2005 14:27:33; Thread 1; Start; Do something; Und noch was anderes; Aufgabe erfolgreich abgeschlossen; " ) Die Einzelnen Log schnipsel sollen vom Logger entgegengenommen werden um dann zu den Zeilen zusammengestellt zu werden. Am Ende wird dann Die zeile in die Datei geschrieben.
Für den zwischen speicher hab ich mir geacht verwend ich einen array von stringstreams, in die ich die einzelnen Logschnipsel rein schieb. Am ende hol ich dann den String raus und schreib ihn in die datei. Den Stringstream will ich dann eigentlich weiterverwenden. (ich bin faul und will den nicht gerade wieder erzeugen)
gruss Termite
-
stream.str("");
-
Hi
danke.
ich hab langsam das gefühl ich seh dan wals vor lauter bäumen nicht mehr.
gruss.