std::ostrstream:: ostrstream
From cppreference.net
<
cpp
|
io
|
ostrstream
|
ostrstream
(
)
;
|
(1) |
(obsolète en C++98)
(supprimé en C++26) |
|
ostrstream
(
char
*
s,
int
n,
std::
ios_base
::
openmode
mode
=
std::
ios_base
::
out
)
;
|
(2) |
(obsolète en C++98)
(supprimé en C++26) |
Construit un nouveau flux de sortie strstream et son std::strstreambuf sous-jacent.
1)
Construit par défaut le
std::strstreambuf
sous-jacent, ce qui crée un tampon à croissance dynamique, et initialise la classe de base avec l'adresse du membre
strstreambuf
.
2)
Initialisé la classe de base avec l'adresse du membre sous-jacent
std::strstreambuf
, qui est initialisé de l'une des deux manières possibles, toutes deux écrivant dans un tableau de taille fixe fourni par l'utilisateur :
a)
si le bit
app
n'est pas défini dans
mode
, construit le tampon en appelant
strstreambuf
(
s, n, s
)
. Le comportement est indéfini s'il y a moins de
n
éléments dans le tableau dont le premier élément est pointé par
s
b)
si le bit
app
est défini dans
mode
, construit le tampon en appelant
strstreambuf
(
s, n, s
+
std::
strlen
(
s
)
)
. Le comportement est indéfini s'il y a moins de
n
éléments dans le tableau dont le premier élément est pointé par
s
ou si le tableau ne contient pas une séquence de caractères valide terminée par un caractère nul.
Paramètres
| s | - | tableau de caractères à utiliser comme tampon de sortie | ||||||||||||||||
| n | - | taille du tableau à utiliser comme tampon de sortie | ||||||||||||||||
| mode | - |
spécifie le mode d'ouverture du flux. C'est un type masque binaire, les constantes suivantes sont définies (bien que seul
app
soit utilisé) :
|
Exemple
Exécuter ce code
#include <iostream> #include <strstream> int main() { std::ostrstream s1; // tampon dynamique s1 << 1 << ' ' << 3.14 << " example\n" << std::ends; std::cout << s1.str(); s1.freeze(false); char arr[15] = "Hello"; std::ostrstream s2(arr, sizeof arr, std::ios_base::app); s2 << ", world!" << std::ends; std::cout << s2.str() << '\n'; std::cout << arr << '\n'; // les flux utilisent les tableaux fournis }
Sortie :
1 3.14 example Hello, world! Hello, world!
Voir aussi
construit un objet
strstreambuf
(fonction membre publique de
std::strstreambuf
)
|
|
construit un objet
istrstream
, allouant optionnellement le tampon
(fonction membre publique de
std::istrstream
)
|
|
construit un objet
strstream
, allouant optionnellement le tampon
(fonction membre publique de
std::strstream
)
|