std::ostrstream:: str
|
char
*
str
(
)
;
|
(obsolète en C++98)
(supprimé en C++26) |
|
Retourne le pointeur vers le début du tampon, après l'avoir gelé. Appelle effectivement rdbuf ( ) - > str ( ) .
Table des matières |
Paramètres
(aucun)
Valeur de retour
Pointeur vers le début du tampon dans le std:: strstreambuf associé ou un pointeur nul si aucun tampon n'est disponible.
Notes
Avant un appel à
str()
qui utilise le résultat comme une chaîne C, le tampon du flux doit être terminé par un caractère nul. Une sortie régulière telle que
stream
<<
1.2
ne stocke pas de terminateur nul, il doit être ajouté explicitement, généralement avec le manipulateur
std::ends
.
Après un appel à
str()
, les flux dynamiques deviennent gelés. Un appel à
freeze(false)
est requis avant de quitter la portée dans laquelle cet objet
ostrstream
a été créé, sinon le destructeur provoquera une fuite de mémoire. De plus, toute sortie supplémentaire vers un flux gelé peut être tronquée une fois qu'elle atteint la fin du tampon alloué, ce qui peut laisser le tampon non terminé par un caractère nul.
Exemple
#include <iostream> #include <strstream> int main() { std::ostrstream dyn; // tampon de sortie alloué dynamiquement dyn << "Test: " << 1.23; // n'ajoute pas std::ends pour démontrer le comportement d'ajout std::cout << "The output stream holds \""; std::cout.write(dyn.str(), dyn.pcount()) << "\"\n"; // le flux est maintenant gelé à cause de str() dyn << " More text" << std::ends; std::cout << "The output stream holds \""; std::cout.write(dyn.str(), dyn.pcount()) << "\"\n"; dyn.freeze(false); }
Sortie possible :
The stream holds "Test: 1.23" The stream holds "Test: 1.23 More "
Voir aussi
|
marque le tampon comme gelé et retourne le pointeur de début de la séquence d'entrée
(fonction membre publique de
std::strstreambuf
)
|