std::basic_ostringstream::str
De cppreference.com
< cpp | io | basic ostringstream
(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(conststd::basic_string<CharT, Traits, Allocator>& s ); | (4) | |
template<class SAlloc > void str(conststd::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
Ejecuta este código
#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) | |
Reemplaza u obtiene una copia de la cadena de caracteres asociada. (función miembro pública de std::basic_stringbuf ) |