std::ostrstream

std::ostrstream (배열 출력 스트림)

배열 기반 스트림에 대한 출력 연산을 구현하는 클래스예요. C++98에서 deprecated, C++26에서 제거됐어요.

출처: cppreference

본문

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

class ostrstream : public std::ostream;

클래스 ostrstream은 배열 기반 스트림에 대한 출력 연산을 구현해요. 원시 배열 I/O 장치 구현(std::strstreambuf)을 std::basic_ostream의 고수준 인터페이스로 감싸요. 전형적인 구현은 std::strstreambuf 타입 객체 하나만 상속되지 않은 데이터 멤버로 보관해요.

참고

str() 호출 후에는 소멸자가 필요에 따라 버퍼를 해제할 수 있도록 freeze(false)를 호출해야 해요. ostrstream은 C++98부터 deprecated, C++26부터 제거됐어요. 대신 std::ostringstream, std::ospanstream(C++23), boost::iostreams를 권장해요.

멤버 함수

  • (constructor) — ostrstream을 생성해요(선택적으로 버퍼·모드).
  • rdbuf — 기반 strstreambuf에 접근해요.
  • str — 기본 배열을 돌려주고 동결해요.
  • pcount — 쓴 문자 수를 돌려줘요.
  • freeze — 버퍼를 동결·해제해요.

예제

#include <strstream>
#include <iostream>

int main()
{
    std::ostrstream oss;
    oss << "value: " << 42;
    char* p = oss.str();  // 동결됨
    std::cout << p << '\n'; // "value: 42"
    oss.freeze(false);     // 동결 해제
}

더 알아보기 (Learn more)

cppreference