std::strstreambuf:: str
|
char
*
str
(
)
;
|
(obsoleto en C++98)
(eliminado en C++26) |
|
Llama a freeze() , luego devuelve una copia del puntero inicial del área de obtención, std::streambuf::eback() .
El inicio del área de obtención, para todos los objetos
std::strstreambuf
escribibles construidos mediante la interfaz proporcionada por
std::strstream
, es también el inicio del área de escritura.
Contenidos |
Parámetros
(ninguno)
Valor de retorno
Una copia de eback() , que puede ser un puntero nulo.
Notas
Esta función normalmente se llama a través de la std::strstream interfaz.
La llamada a
freeze()
garantiza que el puntero devuelto permanezca válido hasta la siguiente llamada explícita a
freeze
(
false
)
: de lo contrario (en un buffer dinámico) cualquier operación de salida podría desencadenar una reasignación del buffer que invalidaría el puntero. También causa una fuga de memoria en el destructor de
std::strstreambuf
, a menos que
freeze
(
false
)
sea llamado antes de que el buffer (o, más comúnmente, el
std::
strstream
que lo gestiona) sea destruido.
Ejemplo
#include <iostream> #include <strstream> int main() { std::strstream dyn; // búfer de lectura/escritura asignado dinámicamente dyn << "Test: " << 1.23 << std::ends; std::strstreambuf* buf = dyn.rdbuf(); std::cout << "R/W buffer holds [" << buf->str() // o dyn.str() << "]\n"; dyn.freeze(false); // después de llamar a .str() en un strstream dinámico char arr[10]; std::ostrstream user(arr, 10); // búfer de solo escritura de tamaño fijo buf = user.rdbuf(); user << 1.23 << std::ends; std::cout << "Write-only buffer holds [" << buf->str() // o user.str() << "]\n"; std::istrstream lit("1 2 3"); // búfer de solo lectura de tamaño fijo buf = lit.rdbuf(); std::cout << "Read-only buffer holds [" << buf->str() // o lit.str() << "]\n"; }
Salida:
R/W buffer holds [Test: 1.23] Write-only buffer holds [1.23] Read-only buffer holds [1 2 31 2 3]
Véase también
|
accede al búfer de salida
(función miembro pública de
std::strstream
)
|
|
|
accede al búfer de salida
(función miembro pública de
std::ostrstream
)
|
|
|
accede al búfer de salida
(función miembro pública de
std::istrstream
)
|