std::strstreambuf:: str
|
char
*
str
(
)
;
|
(C++98에서 사용 중단됨)
(C++26에서 제거됨) |
|
freeze() 를 호출한 후, get 영역의 시작 포인터인 std::streambuf::eback() 의 복사본을 반환합니다.
쓰기 가능한 모든
std::strstreambuf
객체가
std::strstream
인터페이스를 통해 생성될 때, get 영역의 시작은 put 영역의 시작이기도 합니다.
목차 |
매개변수
(없음)
반환값
eback() 의 복사본으로, null 포인터일 수 있습니다.
참고 사항
이 함수는 일반적으로 std::strstream 인터페이스를 통해 호출됩니다.
freeze()
호출은 반환된 포인터가 다음 명시적
freeze
(
false
)
호출까지 유효함을 보장합니다: 그렇지 않으면 (동적 버퍼에서) 출력 작업이 버퍼 재할당을 트리거하여 포인터를 무효화할 수 있습니다. 또한
std::strstreambuf
의 소멸자에서 메모리 누수가 발생합니다. 단,
freeze
(
false
)
가 버퍼(또는 더 일반적으로 이를 관리하는
std::
strstream
)가 소멸되기 전에 호출되지 않는 경우에 한합니다.
예제
#include <iostream> #include <strstream> int main() { std::strstream dyn; // 동적으로 할당된 읽기/쓰기 버퍼 dyn << "Test: " << 1.23 << std::ends; std::strstreambuf* buf = dyn.rdbuf(); std::cout << "R/W buffer holds [" << buf->str() // 또는 dyn.str() << "]\n"; dyn.freeze(false); // 동적 strstream에서 .str() 호출 후 char arr[10]; std::ostrstream user(arr, 10); // 고정 크기 쓰기 전용 버퍼 buf = user.rdbuf(); user << 1.23 << std::ends; std::cout << "Write-only buffer holds [" << buf->str() // 또는 user.str() << "]\n"; std::istrstream lit("1 2 3"); // 고정 크기 읽기 전용 버퍼 buf = lit.rdbuf(); std::cout << "Read-only buffer holds [" << buf->str() // 또는 lit.str() << "]\n"; }
출력:
R/W buffer holds [Test: 1.23] Write-only buffer holds [1.23] Read-only buffer holds [1 2 31 2 3]
참고 항목
|
출력 버퍼에 접근
(
std::strstream
의 public 멤버 함수)
|
|
|
출력 버퍼에 접근
(
std::ostrstream
의 public 멤버 함수)
|
|
|
출력 버퍼에 접근
(
std::istrstream
의 public 멤버 함수)
|