Namespaces
Variants

std::basic_filebuf<CharT,Traits>:: pbackfail

From cppreference.net
protected :
virtual int_type pbackfail ( int_type c = Traits :: eof ( ) )

이 보호된 가상 함수는 공개 함수 basic_streambuf::sungetc basic_streambuf::sputbackc 에 의해 호출됩니다(이들은 차례로 basic_istream::unget basic_istream::putback 에 의해 호출됩니다).

1) 호출자는 get 영역이 한 문자만큼 백업되도록 요청하는 경우(인수 없이 pbackfail() 가 호출됨), 이 함수는 파일을 1바이트 이전 위치부터 다시 읽고 basic_streambuf::gptr() 를 감소시킵니다(예: gbump ( - 1 ) 호출을 통해).
2) 호출자가 이전에 검색한 문자와 다른 문자를 되돌리려고 시도하는 경우( pbackfail() 가 되돌려야 할 문자와 함께 호출됨), 이 경우
a) 먼저, 되돌리기 위치가 있는지 확인하고, 위치가 없을 경우 파일을 한 바이트 앞에서부터 다시 읽어들이기 영역을 백업합니다.
a) 그런 다음 퍼트백 위치에 있는 문자가 무엇인지 확인합니다. 만약 그곳에 보유된 문자가 이미 c 와 동일하다면, Traits :: eq ( to_char_type ( c ) , gptr ( ) [ - 1 ] ) 에 의해 결정된 대로, 단순히 basic_streambuf::gptr() 을 감소시킵니다.
b) 그렇지 않고, 버퍼가 자체 get 영역을 수정할 수 있는 경우, basic_streambuf::gptr() 를 감소시키고 조정 후 gptr()이 가리키는 위치에 c 를 기록합니다.

이 함수는 파일을 수정하지 않고, 메모리 버퍼의 get 영역만 변경합니다.

파일이 열려 있지 않은 경우( is_open ( ) == false ), 이 함수는 즉시 Traits :: eof ( ) 를 반환합니다.

목차

매개변수

c - 되돌릴 문자, 또는 get 영역의 백업을 요청함을 나타내는 Traits::eof()

반환값

c 성공 시 반환되지만, c Traits :: eof ( ) 인 경우에는 Traits :: not_eof ( c ) 가 반환됩니다.

Traits :: eof ( ) 실패 시 반환됩니다.

예제

참고 항목

[virtual]
입력 시퀀스에 문자를 다시 넣으며, 입력 시퀀스를 수정할 수 있음
( std::basic_streambuf<CharT,Traits> 의 virtual protected 멤버 함수)
입력 시퀀스에서 다음 포인터를 하나 뒤로 이동
( std::basic_streambuf<CharT,Traits> 의 public 멤버 함수)
입력 시퀀스에 문자 하나를 다시 넣음
( std::basic_streambuf<CharT,Traits> 의 public 멤버 함수)
문자를 추출 취소함
( std::basic_istream<CharT,Traits> 의 public 멤버 함수)
입력 스트림에 문자를 넣음
( std::basic_istream<CharT,Traits> 의 public 멤버 함수)