Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

bp avec ostringstream

4 réponses
Avatar
mohamed92000
Bonjour à tous,

J'avoue que j'ai pas trop cherché dans la doc, d'ailleur si quelqu'un
connait un lien qui parle de "ostringstream" je suis preneur.
Ma question est simple j'utilise un ostringstream dans mon programme
mais je n'arrive pas à le vider j'ai essayé :

ostringstream oss;

oss<< toto;

oss .flush(); // ne donne rien
oss. clear(); // ne donne rien

Je pense que ostringstream gère un flux de string(c'est ça non?)! y a
t'il une possibilité de le vider?

Merci d'avance.

Une autre une petite question y a t'il un lien "en français" qui
explique bien la librairie standard.

4 réponses

Avatar
Alex
oss .flush(); // ne donne rien
oss. clear(); // ne donne rien


à l'époque d'après ce que je me souviens j'utilisais ces 2 instructions :

oss.seekp(ios::beg);
oss.str("");

voilà mon example qui semble marcher :

#include <sstream>

using namespace std;

int main(int argc, char *argv[])
{
ostringstream oss;

string str("toto");
oss << str;
cout << oss.str() << endl;
oss.seekp(ios::beg);
oss.str("");
cout << "empty string [" << oss.str() << "]" << endl;
}


sortie :

toto
empty string []


Bonne chance avec la librairie standard...

C'est vrai c'est documenté un peu juste, dans MSDN ça y est, mais la
actuellemnt je ne peux pas vérifier, puisque je me suis mis sur Linux et un
simple man sstream ne donne rien... peut-être mes pages man sont pal
installées...

a+

Avatar
Olivier Azeau
mourad wrote:
Bonjour à tous,

J'avoue que j'ai pas trop cherché dans la doc, d'ailleur si quelqu'un
connait un lien qui parle de "ostringstream" je suis preneur.
Ma question est simple j'utilise un ostringstream dans mon programme
mais je n'arrive pas à le vider


Ce n'est pas plus simple d'en utiliser un nouveau ?

Avatar
korchkidu
Olivier Azeau wrote:

mourad wrote:

Bonjour à tous,

J'avoue que j'ai pas trop cherché dans la doc, d'ailleur si quelqu'un
connait un lien qui parle de "ostringstream" je suis preneur.
Ma question est simple j'utilise un ostringstream dans mon programme
mais je n'arrive pas à le vider



Ce n'est pas plus simple d'en utiliser un nouveau ?
Personnellement, c'est la solution que je prefere (faute de connaitre

mieux):
{
std::ostringstream s;
s << ma_chaine;
std::cout << s.str();
}

K.


Avatar
Olivier Azeau
korchkidu wrote:
Olivier Azeau wrote:

mourad wrote:

Bonjour à tous,

J'avoue que j'ai pas trop cherché dans la doc, d'ailleur si quelqu'un
connait un lien qui parle de "ostringstream" je suis preneur.
Ma question est simple j'utilise un ostringstream dans mon programme
mais je n'arrive pas à le vider


Ce n'est pas plus simple d'en utiliser un nouveau ?


Personnellement, c'est la solution que je prefere (faute de connaitre
mieux):
{
std::ostringstream s;
s << ma_chaine;
std::cout << s.str();
}


Pour moi c'est même idiomatique : le code est toujours plus lisible en
partant d'un objet neuf.
Réutiliser un objet et faisant des trucs plus ou moins sûrs pour les
remettre dans un état initial ce n'est rien de plus que de
l'optimisation -- donc inutile tant que l'on en a pas besoin.