std::basic_ostringstream::str
De cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev t-dcl-rev-num ">
</tbody><tbody>
</tbody>
| (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.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. |
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)
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) | std::stringstream interactuando con std::string_view, (7) |
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"
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)
|