2010-08-18 11 views
49

저는 C++ STL에 대해 매우 익숙합니다. 그래서 이것은 사소한 것일 수 있습니다. 약간의 텍스트가있는 ostream 변수가 있습니다.ostream을 표준 문자열로 변환

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

스트림을 추출하고 유형 char*의 문자열에 저장하는 방법이 있나요?

답변

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

그리고 나는 한 시간 전에하지 쓴이 question,에 대한 답변에서 무슨 일이 일어나고 있는지 설명한다.

+0

을 나는 다음과 같은 오류 메시지가 얻을 : '구조체 표준 : basic_ostream <문자, 표준 : : char_traits을 > '에'str '이라는 멤버가 없습니다. –

+7

필요한 헤더를 포함합니다.'# include '및 '#include ' –

+8

ostream이 아닙니다. 그것은 ostringstream입니다 – Vanuan

3

이 문제는 문자열 ostream에 있던 std::ostringstream

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

, 하지ostringstream 문자열을보십시오. 실제 질문을하는 데 관심 분들을 위해

이 ( ostream 특정) 대답이 시도 :

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

나는 열광적 인 인물로서의 포인트를 줄 것이다. 좋아 .. 그리고 옳은 대답을 위해서, ㅎ. – moodboom

+18

정답입니다. 위의 대답은 올바른 것으로 표시되어 있지만 질문에 답하지는 않습니다. –