std::strstream
std::strstream (배열 입출력 스트림)
배열 기반 스트림에 대한 입력·출력 연산을 구현하는 클래스예요. C++98에서 deprecated, C++26에서 제거됐어요.
출처: cppreference
본문
<strstream> 헤더에 정의돼 있어요.
class strstream : public std::iostream;
클래스 strstream은 배열 기반 스트림에 대한 입력·출력 연산을 구현해요. 원시 배열 I/O 장치 구현(std::strstreambuf)을 std::basic_iostream의 고수준 인터페이스로 감싸요. 전형적인 구현은 std::strstreambuf 타입 객체 하나만 상속되지 않은 데이터 멤버로 보관해요.
참고
str() 호출 후에는 소멸자가 필요에 따라 버퍼를 해제할 수 있도록 freeze(false)를 호출해야 해요. strstream은 C++98부터 deprecated, C++26부터 제거됐어요. 대신 std::stringstream, std::spanstream(C++23), boost::iostreams를 권장해요.
멤버 함수
- (constructor) — strstream을 생성해요(선택적으로 버퍼·모드).
- rdbuf — 기반 strstreambuf에 접근해요.
- str — 기본 배열을 돌려주고 동결해요.
- pcount — 쓴 문자 수를 돌려줘요.
- freeze — 버퍼를 동결·해제해요.
예제
#include <strstream>
#include <iostream>
int main()
{
std::strstream ss;
ss << 1 << " + " << 2;
ss << std::ends; // null 종료
char* p = ss.str();
std::cout << p << '\n'; // "1 + 2"
ss.freeze(false);
}