std::ostrstream:: str
|
char
*
str
(
)
;
|
(C++98에서 사용 중단됨)
(C++26에서 제거됨) |
|
버퍼의 시작 부분에 대한 포인터를 반환하며, 이를 동결합니다. 효과적으로 rdbuf ( ) - > str ( ) 를 호출합니다.
목차 |
매개변수
(없음)
반환값
연결된 std:: strstreambuf 내 버퍼의 시작 부분을 가리키는 포인터 또는 사용 가능한 버퍼가 없는 경우 널 포인터입니다.
참고 사항
str()
호출로 결과를 C 문자열로 사용하기 전에, 스트림 버퍼는 널 종료되어야 합니다.
stream
<<
1.2
와 같은 일반 출력은 널 종료자를 저장하지 않으므로, 일반적으로 매니퓰레이터
std::ends
를 사용하여 명시적으로 추가해야 합니다.
str()
를 호출한 후에는 동적 스트림이 고정됩니다. 이
ostrstream
객체가 생성된 범위를 벗어나기 전에
freeze(false)
호출이 필요합니다. 그렇지 않으면 소멸자에서 메모리 누수가 발생합니다. 또한 고정된 스트림에 추가 출력이 발생하면 할당된 버퍼의 끝에 도달했을 때 잘릴 수 있으며, 이로 인해 버퍼가 널 종료되지 않은 상태로 남을 수 있습니다.
예제
#include <iostream> #include <strstream> int main() { std::ostrstream dyn; // 동적으로 할당된 출력 버퍼 dyn << "Test: " << 1.23; // append 동작을 보여주기 위해 std::ends를 추가하지 않음 std::cout << "The output stream holds \""; std::cout.write(dyn.str(), dyn.pcount()) << "\"\n"; // str() 호출로 인해 스트림이 이제 freeze 상태임 dyn << " More text" << std::ends; std::cout << "The output stream holds \""; std::cout.write(dyn.str(), dyn.pcount()) << "\"\n"; dyn.freeze(false); }
가능한 출력:
The stream holds "Test: 1.23" The stream holds "Test: 1.23 More "
참고 항목
|
버퍼를 고정 상태로 표시하고 입력 시퀀스의 시작 포인터를 반환합니다
(
std::strstreambuf
의 public member function)
|