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
    출력에 사용 하는 버퍼입니다.

설명

첫 번째 생성자는 null 포인터 입력된 버퍼, 출력 버퍼 및 strstreambuf 할당을 제어 하는 모든 포인터에 저장 합니다.제어 되는 시퀀스를 확장 하 고 수정할 수 있도록 저장된 strstreambuf 모드를 설정 합니다.또한 받아들이는 _Count 제안 된 초기 할당 크기입니다.

_ 저장을 제외 하 고 두 번째 생성자는 처음 처럼 동작Allocfunc _ 저장소를 할당 하기 위해 호출 하는 함수 포인터로Freefunc 으로 포인터를 해당 저장소를 확보 하기 위해 호출 하는 함수입니다.

세 개의 생성자:

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 제어 되는 시퀀스를 보관 하는 데 사용 하는 array 개체를 지정 합니다.(따라서이 널 포인터 이어야 합니다.) 요소의 N 배열에는 다음과 같이 결정 됩니다.

  • If (_Count > 0), then N is count.

  • If (_Count == 0), then N is strlen( (constchar *)_Getptr ).

  • If (_Count < 0), then N is INT_MAX.

경우 _Putptr 은 null 포인터입니다. 함수 실행 하 여 방금 입력된 버퍼를 설정 합니다.

setg(_Getptr, _Getptr, _Getptr + N);

그렇지 않으면 다음을 실행 하 여 입력 및 출력 버퍼 설정:

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

In this case, _Putptrmust be in the interval _Getptr, _Getptr + N.

마지막으로, 세 개의 생성자:

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

모두와 똑같이 동작 합니다.

streambuf( (char *)_Getptr, _Count );

저장된 모드 제어 되는 시퀀스를 수정할 수 없으며 확장할 있습니다 된다는.

요구 사항

헤더: <strstream>

네임 스페이스: std

참고 항목

참조

strstreambuf Class

iostream 프로그래밍

iostreams 규칙