Converting ostream into standard string

I am very new to the C++ STL, so this may be trivial. I have a ostream variable with some text in it.

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

Is there a way to extract the stream and store it in a string of type char*?

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

And I explain what's going on in the answer to this question, which I wrote not an hour ago.

Try std::ostringstream

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

The question was on ostream to string, not ostringstream to string.

For those interested in having the actual question answered (specific to ostream), try this:

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