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