Namespaces
Variants

std::ostrstream:: ostrstream

From cppreference.net
ostrstream ( ) ;
(1) (obsoleto en C++98)
(eliminado en C++26)
ostrstream ( char * s, int n, std:: ios_base :: openmode mode = std:: ios_base :: out ) ;
(2) (obsoleto en C++98)
(eliminado en C++26)

Construye un nuevo strstream de salida y su subyacente std::strstreambuf .

1) Construye por defecto el subyacente std::strstreambuf , lo cual crea un búfer de crecimiento dinámico, e inicializa la clase base con la dirección del miembro strstreambuf .
2) Inicializó la clase base con la dirección del miembro subyacente std::strstreambuf , que se inicializa de una de las dos formas posibles, ambas escriben a un arreglo de tamaño fijo proporcionado por el usuario:
a) si el bit app no está configurado en mode , construye el búfer llamando a strstreambuf ( s, n, s ) . El comportamiento es indefinido si hay menos de n elementos en el array cuyo primer elemento está apuntado por s
b) si el bit app está establecido en mode , construye el búfer llamando a strstreambuf ( s, n, s + std:: strlen ( s ) ) . El comportamiento es indefinido si hay menos de n elementos en el array cuyo primer elemento está señalado por s o si el array no contiene una secuencia de caracteres válida terminada en nulo.

Parámetros

s - array de caracteres a utilizar como búfer de salida
n - tamaño del array a utilizar como búfer de salida
mode - especifica el modo de apertura del flujo. Es un tipo de máscara de bits, se definen las siguientes constantes (aunque solo se usa app ):
Constante Explicación
app buscar el final del flujo antes de cada escritura
binary abrir en modo binario
in abrir para lectura
out abrir para escritura
trunc descartar el contenido del flujo al abrir
ate buscar el final del flujo inmediatamente después de abrir
noreplace (C++23) abrir en modo exclusivo

Ejemplo

#include <iostream>
#include <strstream>
int main()
{
    std::ostrstream s1; // búfer dinámico
    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'; // los streams utilizan los arrays proporcionados
}

Salida:

1 3.14 example
Hello, world!
Hello, world!

Véase también

construye un objeto strstreambuf
(función miembro pública de std::strstreambuf )
construye un objeto istrstream , opcionalmente asignando el búfer
(función miembro pública de std::istrstream )
construye un objeto strstream , opcionalmente asignando el búfer
(función miembro pública de std::strstream )