Espacios de nombres
Variantes
Acciones

std::basic_stringstream::str

De cppreference.com
 
 
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)
 
 
(1)
std::basic_string<CharT, Traits, Allocator> str() const;
(hasta C++20)
std::basic_string<CharT, Traits, Allocator> str() const&;
(desde C++20)
template< class SAlloc >
std::basic_string<CharT, Traits, SAlloc> str( const SAlloc& a ) const;
(2) (desde C++20)
std::basic_string<CharT, Traits, Allocator> str() &&;
(3) (desde C++20)
void str( const std::basic_string<CharT, Traits, Allocator>& s );
(4)
template< class SAlloc >
void str( const std::basic_string<CharT, Traits, SAlloc>& s );
(5) (desde C++20)
void str( std::basic_string<CharT, Traits, Allocator>&& s );
(6) (desde C++20)
template< class StringViewLike >
void str( const StringViewLike& t );
(7) (desde C++26)

Gestiona el contenido del objeto de cadena subyacente.

1) Devuelve una copia de la cadena subyacente. Equivalente a return rdbuf()->str();.
2) Devuelve una copia de la cadena subyacente, utilizando a como asignador. Equivalente a return rdbuf()->str(a);.
3) Devuelve una cadena construida a partir de la cadena subyacente. Equivalente a return std::move(*rdbuf()).str();.
4,5) Reemplaza el contenido de la cadena subyacente. Equivalente a rdbuf()->str(s);.
6) Reemplaza el contenido de la cadena subyacente. Equivalente a rdbuf()->str(std::move(s));.
7) Reemplaza el contenido de la cadena subyacente. Equivalente a rdbuf()->str(t);.
Esta sobrecarga solo participa en la resolución de sobrecargas si is_convertible_v<const T&, basic_string_view<charT, features>> es true.

Contenido

[editar] Parámetros

s - El nuevo contenido de la cadena subyacente.
t - Un objeto (convertible a std::basic_string_view) para usar como el nuevo contenido de la cadena subyacente.
a - Asignador utilizado para construir la cadena devuelta.

[editar] Valor de retorno

1,2) Una copia del objeto de cadena subyacente.
3) Una cadena construida a partir del objeto de cadena subyacente.
4-7) (Ninguno)

[editar] Notas

La copia de la cadena subyacente devuelta por str es un objeto temporal que se destruirá al final de la expresión, por lo que llamar directamente a c_str() en el resultado de str() (por ejemplo, en auto *ptr = out.str().c_str();) da como resultado un puntero pendiente.

Macro de prueba de característica
__cpp_lib_sstream_from_string_view 202306L (C++26) flujos de cadena interactuando con vistas sobre cadena, (7)

[editar] Ejemplo

#include <iostream>
#include <sstream>
 
int main()
{
    int n;
 
    std::istringstream in; // también podría usarse in("1 2")
    in.str("1 2");
    in >> n;
    std::cout << "Después de leer el primer int de \"1 2\", el int es "
              << n << ", str() = \"" << in.str() << "\"\n";
 
    std::ostringstream out("1 2");
    out << 3;
    std::cout << "Después de escribir el int '3' al flujo de salida \"1 2\""
              << ", str() = \"" << out.str() << "\"\n";
 
    std::ostringstream ate("1 2", std::ios_base::ate);
    ate << 3;
    std::cout << "Después de escribir el int '3' al flujo en modo anexar \"1 2\""
              << ", str() = \"" << ate.str() << "\"\n";
}

Salida:

Después de leer el primer int de "1 2", el int es 1, str() = "1 2"
Después de escribir el int '3' al flujo de salida "1 2", str() = "3 2"
Después de escribir el int '3' al flujo en modo anexar "1 2", str() = "1 23"

[editar] Véase también

Devuelve el objeto dispositivo de cadena sin formato subyacente.
(función miembro pública) [editar]
Reemplaza u obtiene una copia de la cadena de caracteres asociada.
(función miembro pública de std::basic_stringbuf) [editar]