std::basic_stringstream::basic_stringstream
De cppreference.com
<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_typecomostd::basic_iostream<CharT, Traits>, ybuf_typecomostd::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
|
- ↑ 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:
| ||||||||||||||||
| 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
Ejecuta este código
#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) | |
Construye un objeto basic_stringbuf. (función miembro pública de std::basic_stringbuf)
|