std::basic_stringbuf<CharT,Traits,Allocator>:: setbuf
|
protected
:
virtual std:: basic_streambuf < CharT, Traits > * setbuf ( char_type * s, std:: streamsize n ) |
||
Si s es un puntero nulo y n es cero, esta función no tiene efecto.
De lo contrario, el efecto está definido por la implementación: algunas implementaciones no hacen nada, mientras que algunas implementaciones limpian el std::string miembro actualmente utilizado como búfer y comienzan a usar el arreglo de caracteres proporcionado por el usuario de tamaño n , cuyo primer elemento está apuntado por s , como el búfer y la secuencia de caracteres de entrada/salida.
Esta función es protegida virtual, solo puede ser llamada a través de
pubsetbuf()
o desde funciones miembro de una clase definida por el usuario derivada de
std::basic_stringbuf
.
Contenidos |
Parámetros
| s | - | puntero al primer CharT en el búfer proporcionado por el usuario o nulo |
| n | - | el número de elementos CharT en el búfer proporcionado por el usuario o cero |
Valor de retorno
this
Notas
El búfer de flujo obsoleto
std::
strstreambuf
o el dispositivo boost.IOStreams
boost::basic_array
pueden utilizarse para implementar el búfer de E/S sobre un array de caracteres proporcionado por el usuario de manera portable.
Ejemplo
Prueba para la funcionalidad setbuf de stringstream.
#include <iostream> #include <sstream> int main() { std::ostringstream ss; char c[1024] = {}; ss.rdbuf()->pubsetbuf(c, 1024); ss << 3.14 << '\n'; std::cout << c << '\n'; }
Salida:
3.14 (on GNU g++/libstdc++ and SunPro C++/roguewave) <nothing> (on MS Visual Studio 2010, SunPro C++/stlport4, CLang++/libc++)
Véase también
|
invoca
setbuf
(
)
(función miembro pública de
std::basic_streambuf<CharT,Traits>
)
|