Espacios de nombres
Variantes

std::basic_stringstream::basic_stringstream

De cppreference.com

[edit template]
 
 
Biblioteca de E/S
Manipuladores de E/S
E/S estilo C
Búferes
(en desuso en C++98)
Flujos
Abstracciones
E/S de archivos
E/S de cadenas
E/S de arrays
(en desuso en C++98)
(en desuso en C++98)
(en desuso en C++98)
Salida sincronizada
Tipos
Interfaz de categoría de error
(C++11)
 
 
<tbody> </tbody> <tbody class="t-dcl-rev t-dcl-rev-num "> </tbody><tbody> </tbody>
(1)
explicit basic_stringstream( std::ios_base::openmode mode = {{#pad:|27}} std::ios_base::in | std::ios_base::out );
(hasta C++11)
explicit basic_stringstream( std::ios_base::openmode mode );
(desde C++11)
basic_stringstream() : basic_stringstream(std::ios_base::in | std::ios_base::out) {}
(2) (desde C++11)
explicit basic_stringstream ( const std::basic_string<CharT, Traits, Allocator>& str, std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out );
(3)
explicit basic_stringstream ( std::basic_string<CharT, Traits, Allocator>&& str, std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out );
(4) (desde C++20)
basic_stringstream( std::ios_base::openmode mode, const Allocator& a );
(5) (desde C++20)
template< class SAlloc > basic_stringstream( const std::basic_string<CharT, Traits, SAlloc>& str, {{#pad:|18}} std::ios_base::openmode mode, const Allocator& a );
(6) (desde C++20)
template< class SAlloc > basic_stringstream( const std::basic_string<CharT, Traits, SAlloc>& str, {{#pad:|18}} const Allocator& a ) : basic_stringstream(str, std::ios_base::in | std::ios_base::out, a) {}
(7) (desde C++20)
template< class SAlloc > explicit basic_stringstream ( const std::basic_string<CharT, Traits, SAlloc>& str, std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out );
(8) (desde C++20)
template< class StringViewLike > explicit basic_stringstream ( const StringViewLike& t, std::ios_base::openmode mode = std::ios_base::in | std::ios_base::out );
(9) (desde C++26)
template< class StringViewLike > basic_stringstream( const StringViewLike& t, {{#pad:|18}} std::ios_base::openmode mode, const Allocator& a );
(10) (desde C++26)
template< class StringViewLike > basic_stringstream( const StringViewLike& t, const Allocator& a );
(11) (desde C++26)
basic_stringstream( basic_stringstream&& other );
(12) (desde C++11)

Construye un nuevo flujo de cadena.

Dados

  • base_type como std::basic_iostream<CharT, Traits>, y
  • buf_type como std::basic_stringbuf<CharT, Traits, Allocator>,

el std::basic_iostream base y el dato miembro solo para exposición sb se inicializan de la siguiente manera.

Sobrecarga  std::basic_iostream base sb
(1) base_type(std::addressof(sb))[1] buf_type(mode)
(2) buf_type(std::ios_base::in | std::ios_base::out)
(3) buf_type(str, mode)
(4) buf_type(std::move(str), mode)
(5) buf_type(mode, a)
(6) buf_type(str, mode, a)
(7) buf_type(str, std::ios_base::in | std::ios_base::out, a)
(8) buf_type(str, mode)
(9) std::addressof(sb) {t, mode, Allocator()}
(10) {t, mode, a}
(11) {t, std::ios_base::in | std::ios_base::out, a}
(12) Construido por movimiento del std::basic_iostream base de other Construido por movimiento de other.sb
  1. El std::basic_iostream base se inicializó con base_type(&sb) (para las sobrecargas (1,3)) hasta C++11.
8) Esta sobrecarga solo participa en la resolución de sobrecargas si std::is_same_v<SAlloc, Allocator> es false.
9-11) Estas sobrecargas solo participan en la resolución de sobrecargas si std::is_convertible_v<const StringViewLike&, std::basic_string_view<CharT, Traits>> es true.

Parameters

str - Cadena a usar como el contenido inicial del flujo de cadena.
t - Un objeto (convertible a std::basic_string_view) para usar como el contenido inicial del flujo de cadena.
a - Asignador de memoria usado para asignar el contenido del flujo de cadena.
mode - Especifica el modo de apertura del flujo. Es un tipo TipoMáscaraDeBits, se definen las siguientes constantes:
Constante Explicación
app Busca hasta al 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 Busca hasta al final del flujo inmediatamente después de abrirlo.
noreplace (C++23) Abrir en modo exclusivo.
other - Otro flujo de cadena a usar como fuente.

Notas

La construcción de objetos basic_stringstream únicos en un bucle cerrado, como cuando se utiliza para la conversión de cadenas, puede ser significativamente más costosa que llamar a str() para reutilizar el mismo objeto.

Macro de prueba de característica
__cpp_lib_sstream_from_string_view 202306L (C++26) std::stringstream interactuando con std::string_view, (9-11)

Ejemplo

#include <iostream>
#include <sstream>

int main()
{
    // constructor por defecto (flujo de entrada/salida)
    std::stringstream buf1;
    buf1 << 7;
    int n = 0;
    buf1 >> n;
    std::cout << "buf1 = " << buf1.str() << " n = " << n << '\n';
    
    // flujo de entrada
    std::istringstream inbuf("-10");
    inbuf >> n;
    std::cout << "n = " << n << '\n';
    
    // flujo de salida en modo anexar (C++11)
    std::ostringstream buf2("prueba", std::ios_base::ate);
    buf2 << '1';
    std::cout << buf2.str() << '\n';
}

Salida:

buf1 = 7 n = 7
n = -10
prueba1

Informes de defectos

Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.

ID Aplicado a Comportamiento según lo publicado Comportamiento correcto
P0935R0 C++11 El constructor por defecto era explicit. Se hizo implícito.

Véase también

obtiene o establece el contenido del objeto subyacente dispositivo cadena
Original:
gets or sets the contents of underlying string device object
The text has been machine-translated via Google Translate.
You can help to correct and verify the translation. Click here for instructions.

(función miembro pública) [editar]
Construye un objeto basic_stringbuf.
(función miembro pública de std::basic_stringbuf) [editar]