std::strstreambuf

std::strstreambuf (배열 스트림 버퍼)

연관 문자 시퀀스가 문자 배열인 std::basic_streambuf예요. 배열은 상수(문자열 리터럴), 수정 가능하지만 동적이지 않은(스택 배열), 또는 동적일 수 있어요. C++98에서 deprecated, C++26에서 제거됐어요.

출처: cppreference

본문

<strstream> 헤더에 정의돼 있어요.

class strstreambuf : public std::basic_streambuf<char>;

std::strstreambuf는 연관 문자 시퀀스가 문자 배열인 std::basic_streambuf예요. 배열은 상수(문자열 리터럴), 수정 가능하지만 동적이지 않은(스택 할당 배열), 또는 동적일 수 있어요. 동적인 경우 std::strstreambuf가 출력을 수용하도록 필요에 따라 배열을 재할당할 수 있어요(delete[]new[] 또는 사용자 제공 함수 호출). 전형적인 구현은 네 개의 private 데이터 멤버를 보관해요.

멤버 함수

  • (constructor) — strstreambuf를 생성해요(여러 오버로드: 빈 버퍼, 크기 지정, 문자열 리터럴, 버퍼·크기, 동적 제어).
  • (destructor) — 파괴해요(동적이라면 버퍼 해제).
  • str — 버퍼를 동결하고 배열을 돌려줘요.
  • freeze — 버퍼 동결·해제.
  • pcount — 쓰인 문자 수.

예제

#include <strstream>
#include <iostream>

int main()
{
    std::strstreambuf sbuf;
    std::ostream os(&sbuf);
    os << "Hello, strstreambuf!";
    char* p = sbuf.str();
    std::cout << p << '\n'; // "Hello, strstreambuf!"
    sbuf.freeze(false);
}

더 알아보기 (Learn more)

cppreference