Преобразование ostream в стандартную строку - PullRequest
59 голосов
/ 18 августа 2010

Я очень плохо знаком с C ++ STL, так что это может быть тривиально. У меня есть переменная ostream с текстом.

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

Есть ли способ извлечь поток и сохранить его в строке типа char*?

Ответы [ 3 ]

145 голосов
/ 23 июля 2013

Вопрос был о ostream в строку, не ostringstream в строку.

Для тех, кто хочет получить ответ на конкретный вопрос (специфично для ostream), попробуйтеэто:

void someFunc(std::ostream out)
{
    std::stringstream ss;
    ss << out.rdbuf();
    std::string myString = ss.str();
}
58 голосов
/ 18 августа 2010
     std::ostringstream stream;
     stream << "Some Text";
     std::string str =  stream.str();
     const char* chr = str.c_str();

И я объясняю, что происходит в ответе на этот вопрос , который я написал не час назад.

6 голосов
/ 18 августа 2010

Попробуйте std::ostringstream

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