web-dev-qa-db-fra.com

Conversion d'ostream en chaîne standard

Je suis très nouveau dans la C++ STL, donc cela peut être trivial. J'ai une variable ostream contenant du texte.

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

Existe-t-il un moyen d'extraire le flux et de le stocker dans une chaîne de type char*?

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

Et j'explique ce qui se passe dans la réponse à cette question , que j'ai écrite il n'y a pas une heure.

58
James Curran

La question était sur ostream à la chaîne, pasostringstream à la chaîne.

Pour ceux qui souhaitent obtenir la réponse à la question (spécifique à ostream), essayez ceci:

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

Essayez std::ostringstream

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