Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » stringstream leeren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
21.08.2004, 13:13 Uhr
RedEagle



tach

C++:
stringstream test;

test << "test";
test << //leeren;
test << "Test";



Wie mache ich das ??
test=""; und test=NULL; geht nciht
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.08.2004, 13:41 Uhr
(un)wissender
Niveauwart


Eine andere Methode kenne ich nicht:

C++:
test.str("");


Toll ist die nicht, da hat, wenn ich keine übersehen habe, das Standardkomitee gepennt.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.08.2004, 10:28 Uhr
RedEagle




--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.08.2004, 10:47 Uhr
freshman



[edit] sorry, es ist Montag Morgen......
--
freshman.say("Wer nicht an Wunder glaubt ist kein Realist!\a");
while(1)freshman.ask(sillyQuestion);

Dieser Post wurde am 23.08.2004 um 11:03 Uhr von freshman editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.08.2004, 11:01 Uhr
virtual
Sexiest Bit alive
(Operator)


@freshman
clear löscht die Fehlerflags vom Stream, nicht dessen Inhalt.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.08.2004, 11:13 Uhr
freshman



test.str("");
liefert:
error C2660: 'str' : function does not take 1 parameters
mein Senf:
test<<"";
?was sagt ihr?
--
freshman.say("Wer nicht an Wunder glaubt ist kein Realist!\a");
while(1)freshman.ask(sillyQuestion);
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.08.2004, 11:16 Uhr
~RedEagle
Gast


test.str(""); hat bei mir funktioniert...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.08.2004, 12:01 Uhr
(un)wissender
Niveauwart


test.str(""); ist ok!


Bearbeitung:


www.tiem.utk.edu/~peek/software/unix/doc/g++/2.95.x/doc/html/classstd_1_1stringstream.html

Ärgerlich ist halt bloß, dass das ganze ineffizient ist, da man eigentlich nur die Position im Buffer auf null setzen müßte und nicht den Buffer löschen und dann neu allokieren.
Hm, geht das irgendwie?


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 23.08.2004 um 12:07 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.08.2004, 12:41 Uhr
virtual
Sexiest Bit alive
(Operator)


@(un)wissender

C++:
#include <sstream>
#include <iostream>

int main()
{
        std::stringstream s;
        s<<"Test"<<std::endl;
        s.seekg(0); // Lese Zeiger auf position 0
        s.seekp(0); // Schreibzeiger auf position 0
        s<<"Test"<<std::endl;
        std::cout<<s.str()<<std::endl;
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: