Namespaces
Variants

std::basic_stringbuf<CharT,Traits,Allocator>:: setbuf

From cppreference.net
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> )