Namespaces
Variants

std::basic_stringbuf<CharT,Traits,Allocator>:: setbuf

From cppreference.net
protected :
virtual std:: basic_streambuf < CharT, Traits > * setbuf ( char_type * s, std:: streamsize n )

만약 s 가 널 포인터이고 n 이 0이면, 이 함수는 아무런 효과도 가지지 않습니다.

그렇지 않으면, 그 효과는 구현체 정의입니다: 일부 구현체는 아무것도 하지 않는 반면, 일부 구현체는 현재 버퍼로 사용 중인 std::string 멤버를 지우고 n 크기의 사용자 제공 문자 배열을 버퍼 및 입출력 문자 시퀀스로 사용하기 시작합니다. 이 배열의 첫 번째 요소는 s 가 가리킵니다.

이 함수는 protected virtual로, 오직 pubsetbuf() 를 통해서만 호출되거나 사용자 정의 클래스의 멤버 함수에서 std::basic_stringbuf 를 상속받은 경우에만 호출될 수 있습니다.

목차

매개변수

s - 사용자가 제공한 버퍼의 첫 번째 CharT에 대한 포인터 또는 null
n - 사용자가 제공한 버퍼 내 CharT 요소의 개수 또는 0

반환값

this

참고 사항

사용되지 않는 스트림 버퍼 std:: strstreambuf 또는 boost.IOStreams 장치 boost::basic_array 는 사용자가 제공한 char 배열을 통해 이식 가능한 방식으로 I/O 버퍼링을 구현하는 데 사용될 수 있습니다.

예제

stringstream의 setbuf 기능에 대한 테스트입니다.

#include <iostream>
#include <sstream>
int main()
{
    std::ostringstream ss;
    char c[1024] = {};
    ss.rdbuf()->pubsetbuf(c, 1024);
    ss << 3.14 << '\n';
    std::cout << c << '\n';
}

출력:

3.14 (on GNU g++/libstdc++ and SunPro C++/roguewave)
<nothing> (on MS Visual Studio 2010, SunPro C++/stlport4, CLang++/libc++)

참고 항목

setbuf ( ) 를 호출합니다
( std::basic_streambuf<CharT,Traits> 의 public 멤버 함수)