Namespaces
Variants

std::strstreambuf:: strstreambuf

From cppreference.net
(1)
explicit strstreambuf ( std:: streamsize alsize = 0 ) ;
(C++98에서 사용 중단됨)
(C++11 이전)
strstreambuf ( ) : strstreambuf ( 0 ) { }
explicit strstreambuf ( std:: streamsize alsize ) ;
(C++11 이후) (C++26에서 제거됨)
strstreambuf ( void * ( * palloc ) ( std:: size_t ) , void ( * pfree ) ( void * ) ) ;
(2) (C++98에서 사용 중단됨)
(C++26에서 제거됨)
strstreambuf ( char * gnext, std:: streamsize n, char * pbeg = 0 ) ;
(3) (C++98에서 사용 중단됨)
(C++26에서 제거됨)
strstreambuf ( signed char * gnext, std:: streamsize n, signed char * pbeg = 0 ) ;
(4) (C++98에서 사용 중단됨)
(C++26에서 제거됨)
strstreambuf ( unsigned char * gnext, std:: streamsize n, unsigned char * pbeg = 0 ) ;
(5) (C++98에서 사용 중단됨)
(C++26에서 제거됨)
strstreambuf ( const char * gnext, std:: streamsize n ) ;
(6) (C++98에서 사용 중단됨)
(C++26에서 제거됨)
strstreambuf ( const signed char * gnext, std:: streamsize n ) ;
(7) (C++98에서 사용 중단됨)
(C++26에서 제거됨)
strstreambuf ( const unsigned char * gnext, std:: streamsize n ) ;
(8) (C++98에서 사용 중단됨)
(C++26에서 제거됨)
1) std::strstreambuf 객체를 생성합니다: 기본 클래스를 std::streambuf 의 기본 생성자를 호출하여 초기화하고, 버퍼 상태를 "동적"으로 초기화합니다(버퍼는 필요에 따라 할당됨), 할당된 크기를 제공된 alsize 로 초기화하며, 할당 및 해제 함수를 null로 초기화합니다( new [ ] delete [ ] 를 사용함).
2) std::strstreambuf 객체를 생성합니다: 기본 클래스를 std::streambuf 의 기본 생성자를 호출하여 초기화하고, 버퍼 상태를 "동적"으로 초기화합니다(버퍼는 필요에 따라 할당됨). 할당된 크기는 지정되지 않은 값으로 초기화하며, 할당 함수는 palloc 으로, 해제 함수는 pfree 으로 초기화합니다.
3-5) 다음 단계들로 std::strstreambuf 객체를 생성합니다:
a) 기본 클래스를 std::streambuf 의 기본 생성자를 호출하여 초기화합니다.
b) 버퍼 상태를 "constant"로 초기화합니다(버퍼는 사용자가 제공한 고정 크기 버퍼입니다).
c) 사용자 제공 배열의 요소 수를 다음과 같이 결정합니다: n 이 0보다 크면 n 이 사용됩니다. n 이 0이면 std:: strlen ( gnext ) 가 실행되어 버퍼 크기를 결정합니다. n 이 음수이면 INT_MAX 가 사용됩니다.
d) 다음과 같이 std::basic_streambuf 포인터들을 설정합니다: pbeg 가 널 포인터인 경우 setg ( gnext, gnext, gnext + N ) 를 호출합니다. pbeg 가 널 포인터가 아닌 경우 setg ( gnext, gnext, pbeg ) setp ( pbeg, pbeg + N ) 를 실행합니다. 여기서 N은 앞서 결정된 배열의 요소 수입니다.
6-8) strstreambuf ( ( char * ) gnext, n ) 와 동일하지만, 버퍼 상태 비트마스크에 "상수" 비트가 설정됩니다(이 버퍼로의 출력은 허용되지 않음).

목차

매개변수

alsize - 동적으로 할당된 버퍼의 초기 크기
palloc - 사용자가 제공한 할당 함수에 대한 포인터
pfree - 사용자가 제공한 해제 함수에 대한 포인터
gnext - 사용자가 제공한 배열 내 get 영역의 시작 포인터
pbeg - 사용자가 제공한 배열 내 put 영역의 시작 포인터
n - 사용자가 제공한 배열의 get 영역(pbeg가 null인 경우) 또는 put 영역(pbeg가 null이 아닌 경우) 내 바이트 수

참고 사항

이러한 생성자는 일반적으로 std:: strstream 의 생성자에 의해 호출됩니다.

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
P0935R0 C++11 default constructor was explicit made implicit

예제

#include <iostream>
#include <strstream>
int main()
{
    std::strstreambuf dyn; // 동적
    std::strstream dyn_s; // 동등한 스트림
    dyn_s << 1.23 << std::ends;
    std::cout << dyn_s.str() << '\n';
    dyn_s.freeze(false);
    char buf[10];
    std::strstreambuf user(buf, 10, buf); // 사용자 제공 출력 버퍼
    std::ostrstream user_s(buf, 10); // 동등한 스트림
    user_s << 1.23 << std::ends;
    std::cout << buf << '\n';
    std::strstreambuf lit("1 2 3", 5); // 상수
    std::istrstream lit_s("1 2 3"); // 동등한 스트림
    int i, j, k;
    lit_s >> i >> j >> k;
    std::cout << i << ' ' << j << ' ' << k << '\n';
}

출력:

1.23
1.23
1 2 3

참고 항목

strstream 객체를 생성하며, 필요시 버퍼를 할당합니다
( std::strstream 의 public member function)