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);
}

더 알아보기 (Learn more)

cppreference