Compartilhar via


strstreambuf::strstreambuf

Constrói um objeto do 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 tamanho do buffer apontado por _Getptr.Se _Getptr não é um argumento (construtor primeiro formulário), um tamanho sugerido de alocação para os buffers.

  • _Freefunc
    A função usada para liberar 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 zero em todos os ponteiros que controlam o buffer de entrada, o buffer de saída, e a alocação de strstreambuf.Defina o modo de strstreambuf armazenado para fazer a seqüê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 para a 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 se comportam como o primeiro, exceto que _Getptr designa o objeto de matriz usado para armazenar a seqüência controlada.(Portanto, não deve ser um ponteiro zero.) O número dos elementos N da matriz é determinado como segue:

  • Se (_Count > 0), então N é count.

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

  • Se (_Count < 0), então N é INT_MAX.

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

setg(_Getptr, _Getptr, _Getptr + N);

Caso contrário, estabelece buffers de entrada e saída executando:

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

Em esse caso, _Putptr deve estar no intervalo [_Getptr, Em_Getptr +].

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 o mesmo que:

streambuf( (char *)_Getptr, _Count );

exceto que o modo armazenado faz a seqüência nem nem modificável controlada telescópica.

Requisitos

Cabeçalho: <strstream>

namespace: STD

Consulte também

Referência

strstreambuf Class

iostream de programação

Convenções de iostreams