Namespaces
Variants

std::ostrstream:: ostrstream

From cppreference.net
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):
Konstante Erklärung
app springt vor jedem Schreibvorgang zum Ende des Streams
binary öffnet im Binärmodus
in öffnet zum Lesen
out öffnet zum Schreiben
trunc verwirft den Inhalt des Streams beim Öffnen
ate springt unmittelbar nach dem Öffnen zum Ende des Streams
noreplace (C++23) öffnet im exklusiven Modus

Beispiel

#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 )