strstreambuf::strstreambuf
Создает объект типа 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
);
Параметры
_Allocfunc
Функция, используемая для выделения памяти буфера._Count
Определяет длину буфера заданного в _Getptr. Если _Getptr нет аргументов (первой формы конструктора) будет предложено размер выделенной памяти для буферов._Freefunc
Функция, используемая для высвобождения памяти буфера._Getptr
Буфер, используемый для ввода._Putptr
Буфер, используемый для вывода.
Заметки
Первый конструктор сохраняет указатель во всех указателей управление буфер ввода, буфер вывода, а strstreambuf выделение. Он задает сохраненного режима strstreambuf, чтобы сделать контролируемую последовательность изменяемые и extendable. Он также принимает _Count как предложено начальный размер выделения.
Второй конструктор запуску во-первых, за исключением того, что он хранит _Allocfunc в качестве указателя на функцию, которую необходимо вызвать, чтобы выделить хранилище и _Freefunc как указатель на функцию вызову освободить это хранилище.
3 Конструктора:
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);
также поступайте подобна первой, за исключением того, что _Getptr нужный объект массива, в котором содержатся контролируемая последовательность. (Следовательно, это не должно быть пустым указателем). Указывается, что количество элементов в массиве N следующим образом:
Если (_Count > 0), затем Ncount.
Если (_Count == 0), тогда Nstrlen( (const char *)_Getptr ).
Если (_Count < 0), затем NINT_MAX.
Если _Putptr указатель, функция задает только буфер ввода путем выполнения:
setg(_Getptr, _Getptr, _Getptr + N);
В противном случае она задает оба буфера входных и выходных данных путем выполнения:
setg(_Getptr, _Getptr, _Putptr);
setp(_Putptr, _Getptr + N);
В этом случае _Putptr должно находиться в интервале [_Getptr, _Getptr + N].
Наконец, 3 конструктора:
strstreambuf(const char *_Getptr, streamsize _Count);
strstreambuf(const signed char *_Getptr, streamsize _Count);
strstreambuf(const unsigned char *_Getptr, streamsize _Count);
все поведение аналогично:
streambuf( (char *)_Getptr, _Count );
за исключением того, что сохраненного режима делает контролируемую последовательность и изменяемые ни extendable.
Требования
Заголовок:<strstream>
Пространство имен: std