Compartir a través de


strstreambuf::strstreambuf

construye un objeto de strstreambufescrito.

explicit strstreambuf(
   streamsize _Count = 0
);
strstreambuf(
   void ( *_Allocfunc )( size_t ),
   void ( *_Freefunc )( void * )
);
strstreambuf(
   char *_Getptr, 
   streamsize _Count,
   char *_Putptr = 0
);
strstreambuf(
   signed char *_Getptr, 
   streamsize _Count,
   signed char *_Putptr = 0
);
strstreambuf(
   unsigned char *_Getptr,
   streamsize _Count,
   unsigned char *_Putptr = 0
);
strstreambuf(
   const char *_Getptr, 
   streamsize _Count
);
strstreambuf(
   const signed char *_Getptr, 
   streamsize _Count
);
strstreambuf(
   const unsigned char *_Getptr, 
   streamsize _Count
);

Parámetros

  • _Allocfunc
    La función utilizada para asignar memoria de búfer.

  • _Count
    Determina la longitud de búfer indicada por _Getptr.Si _Getptr no es un argumento (el primer formulario de constructor), un tamaño sugerido de asignación para los búferes.

  • _Freefunc
    la función utilizada para liberar memoria de búfer.

  • _Getptr
    un búfer utilizado para la entrada.

  • _Putptr
    un búfer utilizado para la salida.

Comentarios

El primer constructor almacena un puntero NULL en todos los punteros que controlan el búfer de entrada, el búfer de salida, y la asignación de strstreambuf.Establece el modo almacenado de strstreambuf para crear la secuencia controlada modificable y extensible.También acepta _Count como un tamaño inicial sugerido de asignación.

El segundo constructor se comporta como el primero, salvo que almacena el _Allocfunc como el puntero a función para llamar para asignar el almacenamiento y el _Freefunc como el puntero a función para llamar a para liberar el almacenamiento.

los tres constructores:

strstreambuf(char *_Getptr, streamsize count,
    char *putptr = 0);
strstreambuf(signed char *_Getptr, streamsize count,
    signed char *putptr = 0);
strstreambuf(unsigned char *_Getptr, streamsize count,
    unsigned char *putptr = 0);

también se comportan como primer, salvo que _Getptr designa el objeto array utilizado para contener la secuencia controlada.(Hence, no debe ser un puntero NULL.) El número de n de los elementos de la matriz se determina de la siguiente manera:

  • Si (_Count > 0), la n es recuento.

  • si == de (_Count 0), entonces n es strlen((const char *)_Getptr ).

  • Si (_Count < 0), la n es INT_MAX.

Si _Putptr es un puntero NULL, la función establece únicamente un búfer de entrada ejecutando:

setg(_Getptr, _Getptr, _Getptr + N);

Si no, establezca entrada y los búferes de salida ejecutando:

setg(_Getptr, _Getptr, _Putptr);
setp(_Putptr, _Getptr + N);

en este caso, _Putptr debe estar en el intervalo [_Getptr, _Getptr + n].

Por último, los tres constructores:

strstreambuf(const char *_Getptr, streamsize _Count);
strstreambuf(const signed char *_Getptr, streamsize _Count);
strstreambuf(const unsigned char *_Getptr, streamsize _Count);

todos ellos se comportan de igual que:

streambuf( (char *)_Getptr, _Count );

salvo que el modo almacenado crea la secuencia controlada ni modificable ni extensible.

Requisitos

encabezado: <strstream>

espacio de nombres: std

Vea también

Referencia

strstreambuf Class

programación iostream

convenciones de iostreams