std::ostrstream:: ostrstream
From cppreference.net
<
cpp
|
io
|
ostrstream
|
ostrstream
(
)
;
|
(1) |
(veraltet in C++98)
(entfernt in C++26) |
|
ostrstream
(
char
*
s,
int
n,
std::
ios_base
::
openmode
mode
=
std::
ios_base
::
out
)
;
|
(2) |
(veraltet in C++98)
(entfernt in C++26) |
Konstruiert einen neuen Ausgabe-strstream und seinen zugrundeliegenden std::strstreambuf .
1)
Default-konstruiert den zugrundeliegenden
std::strstreambuf
, was einen dynamisch wachsenden Puffer erzeugt, und initialisiert die Basisklasse mit der Adresse des
strstreambuf
-Members.
2)
Initialisierte die Basisklasse mit der Adresse des zugrundeliegenden
std::strstreambuf
Members, der auf eine von zwei möglichen Weisen initialisiert wird, wobei beide in ein benutzerbereitgestelltes Array fester Größe schreiben:
a)
wenn das
app
-Bit nicht in
mode
gesetzt ist, wird der Puffer durch Aufruf von
strstreambuf
(
s, n, s
)
konstruiert. Das Verhalten ist undefiniert, wenn das Array, dessen erstes Element durch
s
gezeigt wird, weniger als
n
Elemente enthält.
b)
wenn das
app
-Bit in
mode
gesetzt ist, konstruiert den Puffer durch Aufruf von
strstreambuf
(
s, n, s
+
std::
strlen
(
s
)
)
. Das Verhalten ist undefiniert, wenn das Array, dessen erstes Element durch
s
gezeigt wird, weniger als
n
Elemente enthält oder wenn das Array keine gültige nullterminierte Zeichensequenz enthält.
Parameter
| s | - | char-Array, das als Ausgabepuffer verwendet werden soll | ||||||||||||||||
| n | - | Größe des Arrays, das als Ausgabepuffer verwendet werden soll | ||||||||||||||||
| mode | - |
gibt den Stream-Öffnungsmodus an. Es handelt sich um einen Bitmask-Typ, die folgenden Konstanten sind definiert (obwohl nur
app
verwendet wird):
|
Beispiel
Diesen Code ausführen
#include <iostream> #include <strstream> int main() { std::ostrstream s1; // dynamischer Puffer 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'; // Streams verwenden die bereitgestellten Arrays }
Ausgabe:
1 3.14 example Hello, world! Hello, world!
Siehe auch
konstruiert ein
strstreambuf
Objekt
(öffentliche Elementfunktion von
std::strstreambuf
)
|
|
konstruiert ein
istrstream
Objekt, optional mit Pufferzuweisung
(öffentliche Elementfunktion von
std::istrstream
)
|
|
konstruiert ein
strstream
Objekt, optional mit Pufferzuweisung
(öffentliche Elementfunktion von
std::strstream
)
|