009
23.08.2004, 16:02 Uhr
(un)wissender
Niveauwart
|
Danke, hätte ich mir ja auch denken können. Erstaunlich, dass zwischen Lese- und Schreibzeiger unterschieden wird. Egal, scheint mir auf jeden Fall die bessere Methode zu sein, um den std::stringstream zu leeren.
Bearbeitung: |
Hm, irgendwas ist aber merkwürdig. Das folgende gibt dreimal "Test" aus, sollte aber nur zweimal ausgeben und einmal nichts.
C++: |
int main() { std::stringstream s; s<<"Test"<<std::endl; std::cout<<s.str()<<std::endl; s.seekg(0); // Lese Zeiger auf position 0 s.seekp(0); // Schreibzeiger auf position 0 std::cout<<s.str()<<std::endl; //Hier wird auch "Test" ausgegeben, warum? s<<"Test"<<std::endl; std::cout<<s.str()<<std::endl; }
|
|
Bearbeitung: |
Ok, der Stream bleibt erhalten. Da muss man dann allerdings aufpassen, dass man ein Trennzeichen einfügt (EOF oder so), weil ansonsten eventuell der alte Inhalt wieder interpretiert wird. Will man ja aber nicht!
|
-- Wer früher stirbt ist länger tot. Dieser Post wurde am 23.08.2004 um 16:13 Uhr von (un)wissender editiert. |