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); // 동결 해제
}