basic_stringbuf 클래스
배열 개체에 저장된 요소의 시퀀스에서 문자 특성이 Tr
클래스에 의해 결정되는 Elem
형식 요소의 전송을 제어하는 스트림 버퍼에 대해 설명합니다.
구문
template <class Elem, class Tr = char_traits<Elem>,
class Alloc = allocator<Elem>>
class basic_stringbuf : public basic_streambuf<Elem, Tr>
매개 변수
할당(Alloc)
할당자 클래스입니다.
Elem
문자열 기본 요소의 형식입니다.
Tr
문자열의 기본 요소에서 특수화된 문자 특성입니다.
설명
시퀀스의 변경 내용을 수용하도록 필요에 따라 개체가 할당, 확장 및 해제됩니다.
클래스 basic_stringbuf<Elem
> Tr
Alloc
개체는 해당 생성자의 openmode 인수 복사본ios_base::
을 해당 stringbuf
모드 모드로 저장합니다.
mode & ios_base::in
이 0이 아닌 경우 입력 버퍼에 액세스할 수 있습니다. 자세한 내용은 basic_streambuf 클래스를 참조하세요.mode & ios_base::out
이 0이 아닌 경우 출력 버퍼에 액세스할 수 있습니다.
생성자
생성자 | Description |
---|---|
basic_stringbuf | basic_stringbuf 형식의 개체를 생성합니다. |
Typedef
형식 이름 | 설명 |
---|---|
allocator_type | 형식은 템플릿 매개 변수 Alloc의 동의어입니다. |
char_type | 형식 이름을 Elem 템플릿 매개 변수와 연결합니다. |
int_type | 's 범위 내에서 basic_filebuf 이 형식을 Tr 범위의 동일한 이름의 형식과 동일하게 만듭니다. |
off_type | 's 범위 내에서 basic_filebuf 이 형식을 Tr 범위의 동일한 이름의 형식과 동일하게 만듭니다. |
pos_type | 's 범위 내에서 basic_filebuf 이 형식을 Tr 범위의 동일한 이름의 형식과 동일하게 만듭니다. |
traits_type | 형식 이름을 Tr 템플릿 매개 변수와 연결합니다. |
멤버 함수
멤버 함수 | 설명 |
---|---|
overflow | 가득 찬 버퍼에 새 문자를 삽입할 때 호출할 수 있는 보호된 가상 함수입니다. |
pbackfail | 보호된 가상 멤버 함수는 요소를 입력 버퍼에 다시 넣은 후 다음 포인터에서 가리키는 현재 요소로 설정하려고 합니다. |
seekoff | 보호된 가상 멤버 함수는 제어된 스트림의 현재 위치를 변경하려고 합니다. |
seekpos | 보호된 가상 멤버 함수는 제어된 스트림의 현재 위치를 변경하려고 합니다. |
str | 쓰기 위치를 변경하지 않고 문자열 버퍼에서 텍스트를 설정하거나 가져옵니다. |
swap | |
underflow | 입력 스트림에서 현재 요소를 추출하는 보호된 가상 멤버 함수입니다. |
요구 사항
헤더:<sstream>
네임스페이스: std
basic_stringbuf::allocator_type
형식은 템플릿 매개 변수 Alloc의 동의어입니다.
typedef Alloc allocator_type;
basic_stringbuf::basic_stringbuf
basic_stringbuf
형식의 개체를 생성합니다.
basic_stringbuf(
ios_base::openmode _Mode = ios_base::in | ios_base::out);
basic_stringbuf(
const basic_string<Elem, Tr, Alloc>& str,
ios_base::openmode _Mode = ios_base::in | ios_base::out);
매개 변수
_모드
ios_base::openmode의 열거형 중 하나입니다.
str
basic_string 형식의 개체입니다.
설명
첫 번째 생성자는 입력 버퍼와 출력 버퍼를 제어하는 모든 포인터에 null 포인터를 저장합니다. 자세한 내용은 basic_streambuf 클래스의 설명 섹션을 참조하세요. 또한 _Mode stringbuf 모드로 저장합니다. 자세한 내용은 basic_stringbuf 클래스의 설명 섹션을 참조하세요.
두 번째 생성자는 문자열 개체 str에 의해 제어되는 시퀀스의 복사본을 할당합니다. _Mode & ios_base::in
이 0이 아닌 경우 시퀀스 시작 시 읽기를 시작하도록 입력 버퍼를 설정합니다. _Mode & ios_base::out
이 0이 아닌 경우 시퀀스 시작 시 쓰기를 시작하도록 출력 버퍼를 설정합니다. 또한 _Mode stringbuf 모드로 저장합니다. 자세한 내용은 basic_stringbuf 클래스의 설명 섹션을 참조하세요.
basic_stringbuf::char_type
형식 이름을 Elem 템플릿 매개 변수와 연결합니다.
typedef Elem char_type;
basic_stringbuf::int_type
basic_filebuf 범위 내에서 이 형식을 범위 내의 동일한 이름의 형식과 Tr
동일하게 만듭니다.
typedef typename traits_type::int_type int_type;
basic_stringbuf::off_type
basic_filebuf 범위 내에서 이 형식을 범위 내의 동일한 이름의 형식과 Tr
동일하게 만듭니다.
typedef typename traits_type::off_type off_type;
basic_stringbuf::overflow
가득 찬 버퍼에 새 문자를 삽입할 때 호출할 수 있는 보호된 가상 함수입니다.
virtual int_type overflow(int_type _Meta = traits_type::eof());
매개 변수
_메타
버퍼에 삽입할 문자 또는 traits_type::eof
입니다.
Return Value
함수가 성공할 수 없으면 이 함수가 반환됩니다 traits_type::eof
. 아닌 경우 traits_type::not_eof(_ Meta)를 반환합니다.
설명
_Meta traits_type::eof와 같지 않으면 보호된 가상 멤버 함수는 출력 버퍼에 traits_type::to_char_type(_Meta) 요소를 삽입하려고 시도합니다. 수행할 수 있는 방법은 다양합니다.
쓰기 위치를 사용할 수 있는 경우 요소를 쓰기 위칭에 저장하고 출력 버퍼에 대해 다음 포인터를 증분할 수 있습니다.
출력 버퍼에 대해 새 스토리지 또는 추가 스토리지를 할당하여 쓰기 위치를 사용 가능하게 만들 수 있습니다. 이러한 방식으로 출력 버퍼를 확장하면 연결된 입력 버퍼도 확장됩니다.
basic_stringbuf::p백페일
보호된 가상 구성원 함수는 요소를 입력 버퍼에 다시 넣은 후 다음 포인터에서 가리키는 현재 요소로 설정하려고 합니다.
virtual int_type pbackfail(int_type _Meta = traits_type::eof());
매개 변수
_메타
버퍼에 삽입할 문자 또는 traits_type::eof
입니다.
Return Value
함수가 성공할 수 없으면 이 함수가 반환됩니다 traits_type::eof
. 아닌 경우 traits_type::not_eof(_ Meta)를 반환합니다.
설명
_Meta traits_type::eof와 동일한 경우 푸시백할 요소는 현재 요소 앞에 이미 있는 요소입니다. 같지 않은 경우 해당 요소는 byte = traits_type::to_char_type(_ Meta)로 바뀝니다. 함수는 여러 가지 방법으로 요소를 다시 넣을 수 있습니다.
putback 위치를 사용할 수 있고 여기에 저장된 요소가 byte와 비교 시 같으면 입력 버퍼에 대한 다음 포인터를 감소시킬 수 있습니다.
putback 위치를 사용할 수 있고 stringbuf 모드에서 시퀀스를 변경하도록 허용하면 (mode & ios_base::out이 0이 아님) 함수는 byte를 putback 위치에 저장하고 입력 버퍼에 대한 다음 포인터를 감소시킬 수 있습니다.
basic_stringbuf::p os_type
basic_filebuf 범위 내에서 이 형식을 범위 내의 동일한 이름의 형식과 Tr
동일하게 만듭니다.
typedef typename traits_type::pos_type pos_type;
basic_stringbuf::seekoff
보호된 가상 멤버 함수는 제어된 스트림의 현재 위치를 변경하려고 합니다.
virtual pos_type seekoff(
off_type _Off,
ios_base::seekdir _Way,
ios_base::openmode _Mode = ios_base::in | ios_base::out);
매개 변수
_Off
_Way 기준으로 검색할 위치입니다. 자세한 내용은 basic_stringbuf::off_type을 참조하세요.
_길
오프셋 작업의 시작 지점입니다. 가능한 값은 ios_base::seekdir을 참조하세요.
_모드
포인터 위치에 대한 모드를 지정합니다. 기본적으로는 읽기 및 쓰기 위치를 수정할 수 있습니다. 자세한 내용은 ios_base::openmode를 참조하세요.
Return Value
새 위치 또는 잘못된 스트림 위치를 반환합니다.
설명
basic_stringbuf<Elem, Tr, Alloc>
클래스 개체의 경우 스트림 위치는 스트림 오프셋으로만 구성됩니다. 오프셋 0은 제어되는 시퀀스의 첫 번째 요소를 지정합니다.
새 위치는 다음과 같이 결정됩니다.
이 경우
_Way
==ios_base::beg
새 위치는 스트림의 시작 부분과 _Off.이 경우
_Way
==ios_base::cur
새 위치는 현재 스트림 위치와 _Off.이 경우
_Way
==ios_base::end
새 위치는 스트림의 끝과 _Off.
_Mode & ios_base::in
이 0이 아닌 경우 함수는 입력 버퍼에서 읽을 다음 위치를 변경합니다. _Mode & ios_base::out
이 0이 아닌 경우 함수는 출력 버퍼에서 읽을 다음 위치를 변경합니다. 스트림이 영향을 받으려면 버퍼가 존재해야 합니다. 위치 지정 작업을 정상적으로 수행하려면 결과 스트림 위치가 제어되는 시퀀스 내에 있어야 합니다. 함수가 두 스트림 위치에 모두 영향을 미치는 경우 _Way 동일한 요소에 위치해야 하거나 두 스트림을 모두 배치해야 합니다 ios_base::beg
ios_base::end
. 아닌 경우(또는 두 위치 모두 영향을 받지 않는 경우) 배치 작업이 실패합니다.
두 스트림 위치 중 하나 또는 모두를 정상적으로 변경하는 경우 함수는 결과 스트림 위치를 반환합니다. 아닌 경우 함수는 실패하며 잘못된 스트림 위치를 반환합니다.
basic_stringbuf::seekpos
보호된 가상 멤버 함수는 제어된 스트림의 현재 위치를 변경하려고 합니다.
virtual pos_type seekpos(pos_type _Sp, ios_base::openmode _Mode = ios_base::in | ios_base::out);
매개 변수
_Sp
찾을 위치입니다.
_모드
포인터 위치에 대한 모드를 지정합니다. 기본적으로는 읽기 및 쓰기 위치를 수정할 수 있습니다.
Return Value
두 스트림 위치 중 하나 또는 모두를 정상적으로 변경하는 경우 함수는 결과 스트림 위치를 반환합니다. 아닌 경우 함수는 실패하며 잘못된 스트림 위치를 반환합니다. 스트림 위치가 잘못되었는지를 확인하려면 반환 값을 pos_type(off_type(-1))
과 비교합니다.
설명
클래스 basic_stringbuf<TrAlloc
>의 경우 스트림 위치는 스트림 오프셋으로만 구성됩니다. 오프셋 0은 제어되는 시퀀스의 첫 번째 요소를 지정합니다. 새 위치는 _ Sp에 의해 결정됩니다.
mode & ios_base::in이 0이 아닌 경우 함수는 입력 버퍼에서 읽을 다음 위치를 변경합니다. mode & ios_base::out이 0이 아닌 경우 함수는 입력 버퍼에서 읽을 다음 위치를 변경합니다. 스트림이 영향을 받으려면 버퍼가 존재해야 합니다. 위치 지정 작업을 정상적으로 수행하려면 결과 스트림 위치가 제어되는 시퀀스 내에 있어야 합니다. 아닌 경우(또는 두 위치 모두 영향을 받지 않는 경우) 배치 작업이 실패합니다.
basic_stringbuf::str
쓰기 위치를 변경하지 않고 문자열 버퍼에서 텍스트를 설정하거나 가져옵니다.
basic_string<Elem, Tr, Alloc> str() const;
void str(
const basic_string<Elem, Tr, Alloc>& _Newstr);
매개 변수
_Newstr
새 문자열입니다.
Return Value
제어되는 시퀀스가 제어*this
되는 시퀀스의 복사본인 Elem, Tr, Alloc > 와 basic_string<클래스의 개체를 반환합니다.
설명
첫 번째 멤버 함수는 제어되는 시퀀스가 제어*this
되는 시퀀스의 복사본인 elem, TrAlloc
>과 basic_string<클래스의 개체를 반환합니다. 복사되는 시퀀스는 저장된 stringbuf 모드에 따라 달라집니다.
mode & ios_base::out이 0이고 출력 버퍼가 존재하는 경우 시퀀스는 전체 출력 버퍼입니다(
pbase
로 시작되는 epptr - pbase 요소).mode & ios_base::in이 0이 아니고 입력 버퍼가 존재하는 경우 시퀀스는 전체 입력 버퍼입니다(
eback
으로 시작되는 egptr - eback 요소).아닌 경우 복사된 시퀀스는 비어 있습니다.
두 번째 멤버 함수는 현재 에 의해 *this
제어되는 모든 시퀀스를 할당 취소합니다. 그런 다음 _Newstr 제어되는 시퀀스의 복사본을 할당합니다. mode & ios_base::in이 0이 아닌 경우 시퀀스 시작 시 읽기를 시작하도록 입력 버퍼를 설정합니다. mode & ios_base::out이 0이 아닌 경우 시퀀스 시작 시 쓰기를 시작하도록 출력 버퍼를 설정합니다.
예시
// basic_stringbuf_str.cpp
// compile with: /EHsc
#include <iostream>
#include <sstream>
using namespace std;
int main( )
{
basic_string<char> i( "test" );
stringstream ss;
ss.rdbuf( )->str( i );
cout << ss.str( ) << endl;
ss << "z";
cout << ss.str( ) << endl;
ss.rdbuf( )->str( "be" );
cout << ss.str( ) << endl;
}
test
zest
be
basic_stringbuf::traits_type
형식 이름을 Tr 템플릿 매개 변수와 연결합니다.
typedef Tr traits_type;
설명
이 형식은 템플릿 매개 변수 Tr의 동의어입니다.
basic_stringbuf::underflow
입력 스트림에서 현재 요소를 추출하는 보호된 가상 함수입니다.
virtual int_type underflow();
Return Value
함수가 성공할 수 없으면 traits_type::eof를 반환합니다. 그렇지 않으면 변환된 입력 스트림의 현재 요소를 반환합니다.
설명
보호된 가상 멤버 함수는 입력 버퍼에서 현재 요소를 byte
추출하고, 현재 스트림 위치를 이동하고, 요소를 traits_type::to_int_type(바이트)로 반환하려고 시도합니다. 한 가지 방법으로 이 작업을 수행할 수 있습니다. 읽기 위치를 사용할 수 있는 경우 읽기 위치에 저장된 요소로 사용하고 byte
입력 버퍼에 대한 다음 포인터를 앞으로 이동합니다.
basic_streambuf::swap
이 문자열 버퍼의 내용을 다른 문자열 버퍼로 바꿉니다.
void basic_stringbuf<T>::swap(basic_stringbuf& other)
매개 변수
기타
해당 내용이 이 basic_stringbuf로 바뀌는 basic_stringbuf입니다.
설명
basic_stringbuf::operator=
연산자 우변의 basic_stringbuf 내용을 좌변의 basic_stringbuf에 할당합니다.
basic_stringbuf& basic_stringbuf:: operator=(const basic_stringbuf& other)
매개 변수
기타
로캘 특성을 포함하여 해당 내용이 연산자 좌변의 stringbuf에 할당되는 basic_stringbuf입니다.