std::strstreambuf:: str
|
char
*
str
(
)
;
|
(obsolète en C++98)
(supprimé en C++26) |
|
Appelle freeze() , puis retourne une copie du pointeur de début de la zone de lecture, std::streambuf::eback() .
Le début de la zone de récupération, pour tous les objets
std::strstreambuf
modifiables construits via l'interface fournie par
std::strstream
, est également le début de la zone d'écriture.
Table des matières |
Paramètres
(aucun)
Valeur de retour
Une copie de eback() , qui peut être un pointeur nul.
Notes
Cette fonction est généralement appelée via l'interface std::strstream .
L'appel à
freeze()
garantit que le pointeur retourné reste valide jusqu'au prochain appel explicite à
freeze
(
false
)
: autrement (sur un tampon dynamique) toute opération de sortie pourrait déclencher une réallocation du tampon qui invaliderait le pointeur. Cela cause également une fuite de mémoire dans le destructeur de
std::strstreambuf
, sauf si
freeze
(
false
)
est appelé avant que le tampon (ou, plus communément, le
std::
strstream
qui le gère) soit détruit.
Exemple
#include <iostream> #include <strstream> int main() { std::strstream dyn; // tampon lecture/écriture alloué dynamiquement dyn << "Test: " << 1.23 << std::ends; std::strstreambuf* buf = dyn.rdbuf(); std::cout << "Le tampon R/W contient [" << buf->str() // ou dyn.str() << "]\n"; dyn.freeze(false); // après avoir appelé .str() sur un strstream dynamique char arr[10]; std::ostrstream user(arr, 10); // tampon écriture seule de taille fixe buf = user.rdbuf(); user << 1.23 << std::ends; std::cout << "Le tampon écriture seule contient [" << buf->str() // ou user.str() << "]\n"; std::istrstream lit("1 2 3"); // tampon lecture seule de taille fixe buf = lit.rdbuf(); std::cout << "Le tampon lecture seule contient [" << buf->str() // ou lit.str() << "]\n"; }
Sortie :
Le tampon R/W contient [Test: 1.23] Le tampon écriture seule contient [1.23] Le tampon lecture seule contient [1 2 31 2 3]
Voir aussi
|
accède au tampon de sortie
(fonction membre publique de
std::strstream
)
|
|
|
accède au tampon de sortie
(fonction membre publique de
std::ostrstream
)
|
|
|
accède au tampon de sortie
(fonction membre publique de
std::istrstream
)
|