Salut,
J'utilise dans mon application un ostringstream, et j'ai pas mal de questions à ce sujet :
tout d'abord on écrit dans le flux via l'opérateur << et je récupère le tout sous forme de string via la méthode str().
Seulement j'aimerais bien "vider" le flux de temps en temps, explication :
Code :
- ostringstream oss;
- oss << "toto" << 2;
- cout << oss.str() << "\n"; //oss.str() contient "toto 2", ok
- //ici je voudrais vider le flux
- oss << "ta" << 3;
- cout << oss.str() << "\n"; //oss.str() contient "toto 2ta 3"
|
et j'aimerais bien pouvoir récupérer seulement "ta 3", donc comment faire ?
La solution que j'ai trouvé, dites moi si ça va pas :
Code :
- ostringstream oss;
- oss << "toto" << 2 << ends;
- cout << oss.str() << "\n";
- //...
- oss << "ta" << 3 << ends;
- cout << oss.str().c_str() << "\n"; //affiche bien ce que je veux "ta 3"
|
je passe donc par la méthode c_str() de la classe string qui va donc s'arrêter au premier caractère nul rencontré. C'est tout ce que j'ai trouvé...
Biensur mon but n'est pas simplement d'afficher "ta 3" comme dans l'exemple, mais ensuite de travailler avec cette chaine.
Sinon autre question, toujours dans l'optique de "vider" le flux, je me suis penché sur la méthode flush() et je n'ai absolument pas compris à quoi elle sert...
merci
ANT
Message édité par antsite le 01-12-2003 à 10:44:06