2010-08-18 6 views
49

Ich bin sehr neu in der C++ - STL, so dass dies trivial sein kann. Ich habe eine ostream Variable mit etwas Text drin.Konvertieren von Ostream in Standard-String

ostream* pout; 
(*pout) << "Some Text"; 

Gibt es eine Möglichkeit char* den Strom und speichern sie in einer Zeichenkette vom Typ zu extrahieren?

Antwort

47
 std::ostringstream stream; 
    stream << "Some Text"; 
    std::string str = stream.str(); 
    const char* chr = str.c_str(); 

Und ich erklären, was dieser question in der Antwort auf geht, die ich vor nicht eine Stunde geschrieben. nichtostringstream bespannen

+0

bekomme ich folgende Fehlermeldung: ‚struct std :: basic_ostream > 'hat kein Mitglied mit dem Namen' str ' –

+7

Fügen Sie die erforderlichen Header hinzu. '# Include ' und '#include ' –

+8

Es ist nicht ostream. Es ist ostringstream – Vanuan

3

Versuchen std::ostringstream

std::ostringstream os; 
    os<<"Hello world"; 
    std::string s=os.str(); 
    const char *p = s.c_str(); 
116

Die Frage auf ostream bespannen war.

Für Interessenten an der eigentlichen Frage (spezifisch für ostream) beantwortet haben, versuchen Sie dies:

void someFunc(std::ostream out) 
{ 
    std::stringstream ss; 
    ss << out.rdbuf(); 
    std::string myString = ss.str(); 
} 
+2

Ich gebe dir Punkte dafür, ein Hitzkopf zu sein. Okay ... und für die richtige Antwort, heh. – moodboom

+18

Dies ist die richtige Antwort. Die obige Antwort, die als richtig gekennzeichnet ist, beantwortet die Frage NICHT. –

Verwandte Themen