std::strstream:: str
|
char
*
str
(
)
;
|
(obsoleto en C++98)
(eliminado en C++26) |
|
Devuelve el puntero al inicio del búfer, después de congelarlo. Efectivamente llama a rdbuf ( ) - > str ( ) .
Contenidos |
Parámetros
(ninguno)
Valor de retorno
Puntero al inicio del búfer en el std:: strstreambuf asociado o un puntero nulo si no hay búfer disponible.
Notas
Antes de una llamada a
str()
que utilice el resultado como una cadena C, el búfer del flujo debe estar terminado en nulo. La salida regular como con
stream
<<
1.2
no almacena un terminador nulo, debe agregarse explícitamente, típicamente con el manipulador
std::ends
.
Después de una llamada a
str()
, los streams dinámicos se congelan. Se requiere una llamada a
freeze(false)
antes de salir del ámbito en el que este objeto
strstream
fue creado. De lo contrario, el destructor filtrará memoria. Además, salida adicional a un stream congelado puede truncarse una vez que alcanza el final del búfer asignado, lo que puede dejar el búfer sin terminación nula.
Ejemplo
#include <iostream> #include <strstream> int main() { std::strstream dyn; // búfer de salida asignado dinámicamente dyn << "Test: " << 1.23; // no se añade std::ends para demostrar el comportamiento de anexar std::cout << "The output stream holds \""; std::cout.write(dyn.str(), dyn.pcount()) << "\"\n"; // el stream ahora está congelado debido a str() dyn << " More text" << std::ends; std::cout << "The output stream holds \""; std::cout.write(dyn.str(), dyn.pcount()) << "\"\n"; dyn.freeze(false); }
Salida posible:
The stream holds "Test: 1.23" The stream holds "Test: 1.23 More "
Véase también
|
marca el búfer como congelado y devuelve el puntero inicial de la secuencia de entrada
(función miembro pública de
std::strstreambuf
)
|