Ответ 1
std::ostringstream stream;
stream << "Some Text";
std::string str = stream.str();
const char* chr = str.c_str();
И я объясню, что происходит в ответе на этот question, который я написал не час назад.
Я очень новичок в С++ STL, так что это может быть тривиально. У меня есть переменная ostream
с некоторым текстом в ней.
ostream* pout;
(*pout) << "Some Text";
Есть ли способ извлечь поток и сохранить его в строке типа char*
?
std::ostringstream stream;
stream << "Some Text";
std::string str = stream.str();
const char* chr = str.c_str();
И я объясню, что происходит в ответе на этот question, который я написал не час назад.
Вопрос был о ostream
для строки, а не ostringstream
для строки.
Для тех, кто интересуется ответом на фактический вопрос (специфичный для ostream
), попробуйте следующее:
void someFunc(std::ostream out)
{
std::stringstream ss;
ss << out.rdbuf();
std::string myString = ss.str();
}
Попробуйте std::ostringstream
std::ostringstream os;
os<<"Hello world";
std::string s=os.str();
const char *p = s.c_str();