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