Namespaces
Variants

std::basic_istringstream<CharT,Traits,Allocator>:: basic_istringstream

From cppreference.net

(1)
explicit basic_istringstream ( std:: ios_base :: openmode mode =
std:: ios_base :: in ) ;
(hasta C++11)
explicit basic_istringstream ( std:: ios_base :: openmode mode ) ;
(desde C++11)
basic_istringstream ( )
: basic_istringstream ( std:: ios_base :: in ) { }
(2) (desde C++11)
explicit basic_istringstream

( const std:: basic_string < CharT, Traits, Allocator > & str,
std:: ios_base :: openmode mode =

std:: ios_base :: in ) ;
(3)
explicit basic_istringstream

( std:: basic_string < CharT, Traits, Allocator > && str,
std:: ios_base :: openmode modo =

std:: ios_base :: in ) ;
(4) (desde C++20)
basic_istringstream ( std:: ios_base :: openmode modo, const Allocator & a ) ;
(5) (desde C++20)
template < class SAlloc >

basic_istringstream ( const std:: basic_string < CharT, Traits, SAlloc > & str,

std:: ios_base :: openmode mode, const Allocator & a ) ;
(6) (desde C++20)
template < class SAlloc >

basic_istringstream ( const std:: basic_string < CharT, Traits, SAlloc > & str,
const Allocator & a )

: basic_istringstream ( str, std:: ios_base :: in , a ) { }
(7) (desde C++20)
template < class SAlloc >

explicit basic_istringstream
( const std:: basic_string < CharT, Traits, SAlloc > & str,
std:: ios_base :: openmode mode =

std:: ios_base :: in ) ;
(8) (desde C++20)
template < class StringViewLike >

explicit basic_istringstream
( const StringViewLike & t,
std:: ios_base :: openmode mode =

std:: ios_base :: in ) ;
(9) (desde C++26)
template < class StringViewLike >

basic_istringstream ( const StringViewLike & t,

std:: ios_base :: openmode mode, const Allocator & a ) ;
(10) (desde C++26)
template < class StringViewLike >
basic_istringstream ( const StringViewLike & t, const Allocator & a ) ;
(11) (desde C++26)
basic_istringstream ( basic_istringstream && otro ) ;
(12) (desde C++11)

Construye un nuevo flujo de cadena.

Dado

la std::basic_istream base y el miembro de datos de solo exposición sb se inicializan de la siguiente manera.

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

Contenidos

Parámetros

str - cadena a utilizar como contenido inicial del flujo de cadena
t - un objeto (convertible a std::basic_string_view ) a utilizar como contenido inicial del flujo de cadena
a - asignador utilizado para asignar el contenido del flujo de cadena
mode - especifica el modo de apertura del flujo. Es un BitmaskType , las siguientes constantes están definidas:
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
other - otro flujo de cadena a utilizar como fuente

Notas

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

Macro de prueba de características Valor Estándar Característica
__cpp_lib_sstream_from_string_view 202306L (C++26) Interconexión de std::stringstream 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 append (C++11)
    std::ostringstream buf2("test", std::ios_base::ate);
    buf2 << '1';
    std::cout << buf2.str() << '\n';
}

Salida:

buf1 = 7 n = 7
n = -10
test1

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.

DR Aplicado a Comportamiento publicado Comportamiento correcto
P0935R0 C++11 el constructor por defecto era explícito hecho implícito

Véase también

obtiene o establece los contenidos del objeto de dispositivo de cadena subyacente
(función miembro pública)
construye un objeto basic_stringbuf
(función miembro pública de std::basic_stringbuf<CharT,Traits,Allocator> )