Compartilhar via


strstreambuf::strstreambuf

Constrói um objeto de tipo strstreambuf.

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
    A função usada para alocar memória de buffer.

  • _Count
    Determina o comprimento do buffer apontado por _Getptr. Se _Getptr não é um argumento (primeiro formulário de construtor), um tamanho sugerido sobre alocação de buffers.

  • _Freefunc
    A função usada para liberar a memória de buffer.

  • _Getptr
    Um buffer usado para entrada.

  • _Putptr
    Um buffer usado para saída.

Comentários

O primeiro construtor armazena um ponteiro nulo em todos os ponteiros que controlam o buffer de entrada, o buffer de saída, e a alocação de strstreambuf. Define o modo armazenado de strstreambuf para fazer a sequência controlada modificável e telescópica. Também aceita _Count como um tamanho inicial sugerido de alocação.

O segundo construtor se comporta como o primeiro, exceto que armazena _Allocfunc como o ponteiro da função para chamar para atribuir o armazenamento e _Freefunc como o ponteiro para a função para chamar para liberar o armazenamento.

Os três construtores:

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);

também comporte-se como o primeiro, exceto que _Getptr designa o objeto de matriz usado para manter a sequência controlada. (Consequentemente, não deve ser um ponteiro nulo.) O número de elementos Na matriz é determinado da seguinte maneira:

  • Se_Count > (0) e, Emcounté.

  • Se == de (_Count 0) Em seguida, é strlen(const char (*)_Getptr ).

  • Se_Count < (0) e, EmINT_MAXé.

Se _Putptr for um ponteiro nulo, a função estabelece apenas um buffer de entrada executando:

setg(_Getptr, _Getptr, _Getptr + N);

Se não, estabelece buffers de entrada e saída executando:

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

Nesse caso, _Putptr deve estar no intervalo [_Getptr, _Getptr + N].

Finalmente, os três construtores:

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

todos se comportam da mesma forma que:

streambuf( (char *)_Getptr, _Count );

a diferença é que o modo armazenado faz a sequência controlada ou modificado ou telescópica.

Requisitos

strstream <deCabeçalho: >

Namespace: std

Consulte também

Referência

Classe strstreambuf

Programação iostream

Convenções iostreams