다음을 통해 공유


basic_filebuf 클래스

외부 파일에 저장된 요소 시퀀스와 클래스 Tr에 의해 문자 특성이 결정되는 Char_T 형식 요소의 전송을 제어하는 스트림 버퍼에 대해 설명합니다.

구문

template <class Char_T, class Tr = char_traits<Char_T>>
class basic_filebuf : public basic_streambuf<Char_T, Tr>

매개 변수

Char_T
파일 버퍼의 기본 요소입니다.

Tr
파일 버퍼의 기본 요소 특성(일반적으로)입니다 char_traits<Char_T>.

설명

클래스 템플릿은 외부 파일에 저장된 요소 시퀀스와 클래스 Tr에 의해 문자 특성이 결정되는 Char_T 형식의 요소 전송을 제어하는 스트림 버퍼를 설명합니다.

참고 항목

형식의 개체는 형식 basic_filebuf 매개 변수 Char_T 지정된 형식에 관계없이 char*형식char_type 내부 버퍼를 사용하여 생성됩니다. 즉, 유니코드 문자열(wchar_t 문자 포함)은 내부 버퍼에 기록되기 전에 ANSI 문자열(char 문자 포함)로 변환됩니다. 버퍼에 유니코드 문자열을 저장하려면 형식 wchar_t 의 새 버퍼를 만들고 메서드를 basic_streambuf::pubsetbuf() 사용하여 설정합니다. 이 동작을 보여 주는 예제를 보려면 아래를 참조하세요.

클래스 basic_filebuf<Char_T, Tr> 의 개체는 열린 파일과 연결된 스트림을 제어하는 개체를 지정 FILE 하는 파일 포인터를 저장합니다. 또한 보호된 멤버 함수 overflowunderflow에서 사용하도록 두 가지 파일 변환 패싯에 대한 포인터를 저장합니다. 자세한 내용은 basic_filebuf::open를 참조하세요.

예시

다음 예제에서는 basic_filebuf<wchar_t> 형식의 개체가 pubsetbuf() 메서드를 호출하여 유니코드 문자열을 내부 버퍼에 강제로 저장하도록 하는 방법을 보여 줍니다.

// unicode_basic_filebuf.cpp
// compile with: /EHsc

#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
#include <memory.h>
#include <string.h>

#define IBUFSIZE 16

using namespace std;

void hexdump(const string& filename);

int main()
{
    wchar_t* wszHello = L"Hello World";
    wchar_t wBuffer[128];

    basic_filebuf<wchar_t> wOutFile;

    // Open a file, wcHello.txt, then write to it, then dump the
    // file's contents in hex
    wOutFile.open("wcHello.txt",
        ios_base::out | ios_base::trunc | ios_base::binary);
    if(!wOutFile.is_open())
    {
        cout << "Error Opening wcHello.txt\n";
        return -1;
    }
    wOutFile.sputn(wszHello, (streamsize)wcslen(wszHello));
    wOutFile.close();
    cout << "Hex Dump of wcHello.txt - note that output is ANSI chars:\n";
    hexdump(string("wcHello.txt"));

    // Open a file, wwHello.txt, then set the internal buffer of
    // the basic_filebuf object to be of type wchar_t, then write
    // to the file and dump the file's contents in hex
    wOutFile.open("wwHello.txt",
        ios_base::out | ios_base::trunc | ios_base::binary);
    if(!wOutFile.is_open())
    {
        cout << "Error Opening wwHello.txt\n";
        return -1;
    }
    wOutFile.pubsetbuf(wBuffer, (streamsize)128);
    wOutFile.sputn(wszHello, (streamsize)wcslen(wszHello));
    wOutFile.close();
    cout << "\nHex Dump of wwHello.txt - note that output is wchar_t chars:\n";
    hexdump(string("wwHello.txt"));

    return 0;
}

// dump contents of filename to stdout in hex
void hexdump(const string& filename)
{
    fstream ifile(filename.c_str(),
        ios_base::in | ios_base::binary);
    char *ibuff = new char[IBUFSIZE];
    char *obuff = new char[(IBUFSIZE*2)+1];
    int i;

    if(!ifile.is_open())
    {
        cout << "Cannot Open " << filename.c_str()
             << " for reading\n";
        return;
    }
    if(!ibuff || !obuff)
    {
        cout << "Cannot Allocate buffers\n";
        ifile.close();
        return;
    }

    while(!ifile.eof())
    {
        memset(obuff,0,(IBUFSIZE*2)+1);
        memset(ibuff,0,IBUFSIZE);
        ifile.read(ibuff,IBUFSIZE);

        // corner case where file is exactly a multiple of
        // 16 bytes in length
        if(ibuff[0] == 0 && ifile.eof())
            break;

        for(i = 0; i < IBUFSIZE; i++)
        {
            if(ibuff[i] >= ' ')
                obuff[i] = ibuff[i];
            else
                obuff[i] = '.';

            cout << setfill('0') << setw(2) << hex
                 << (int)ibuff[i] << ' ';
        }
        cout << "  " << obuff << endl;
    }
    ifile.close();
}
Hex Dump of wcHello.txt - note that output is ANSI chars:
48 65 6c 6c 6f 20 57 6f 72 6c 64 00 00 00 00 00   Hello World.....

Hex Dump of wwHello.txt - note that output is wchar_t chars:
48 00 65 00 6c 00 6c 00 6f 00 20 00 57 00 6f 00   H.e.l.l.o. .W.o.
72 00 6c 00 64 00 00 00 00 00 00 00 00 00 00 00   r.l.d...........

생성자

생성자 Description
basic_filebuf basic_filebuf 형식의 개체를 생성합니다.

Typedef

형식 이름 설명
char_type 형식 이름을 Char_T 템플릿 매개 변수와 연결합니다.
int_type Tr 범위에 있는 동일한 이름의 형식에 해당하는 basic_filebuf의 범위 내에 이 형식을 만듭니다.
off_type Tr 범위에 있는 동일한 이름의 형식에 해당하는 basic_filebuf의 범위 내에 이 형식을 만듭니다.
pos_type Tr 범위에 있는 동일한 이름의 형식에 해당하는 basic_filebuf의 범위 내에 이 형식을 만듭니다.
traits_type 형식 이름을 Tr 템플릿 매개 변수와 연결합니다.

멤버 함수

멤버 함수 설명
close 파일을 닫습니다.
is_open 파일이 열려 있는지 여부를 나타냅니다.
open 파일을 엽니다.
overflow 가득 찬 버퍼에 새 문자를 삽입할 때 호출할 수 있는 보호된 가상 함수입니다.
pbackfail 보호된 가상 멤버 함수는 요소를 입력 스트림에 다시 넣은 후 다음 포인터에서 가리키는 현재 요소로 설정하려고 합니다.
seekoff 보호된 가상 멤버 함수는 제어된 스트림의 현재 위치를 변경하려고 합니다.
seekpos 보호된 가상 멤버 함수는 제어된 스트림의 현재 위치를 변경하려고 합니다.
setbuf 보호된 가상 멤버 함수는 파생된 각 스트림 버퍼와 관련된 작업을 수행합니다.
Swap basic_filebuf의 콘텐츠를 제공된 basic_filebuf 매개 변수의 콘텐츠로 교환합니다.
sync 보호된 가상 함수는 제어된 스트림을 연결된 외부 스트림과 동기화하려고 합니다.
uflow 입력 스트림에서 현재 요소를 추출하는 보호된 가상 함수입니다.
underflow 입력 스트림에서 현재 요소를 추출하는 보호된 가상 함수입니다.

요구 사항

헤더:<fstream>

네임스페이스: std

basic_filebuf::basic_filebuf

basic_filebuf 형식의 개체를 생성합니다.

basic_filebuf();

basic_filebuf(basic_filebuf&& right);

설명

첫 번째 생성자는 입력 버퍼와 출력 버퍼를 제어하는 모든 포인터에 null 포인터를 저장합니다. 또한 파일 포인터에 null 포인터를 저장합니다.

두 번째 생성자는 rvalue 참조로 처리되는 right의 내용으로 개체를 초기화합니다.

basic_filebuf::char_type

형식 이름을 Char_T 템플릿 매개 변수와 연결합니다.

typedef Char_T char_type;

basic_filebuf::close

파일을 닫습니다.

basic_filebuf<Char_T, Tr> *close();

Return Value

파일 포인터가 null 포인터인 경우 멤버 함수는 null 포인터를 반환합니다.

설명

closefclose(fp)를 호출합니다. 해당 함수가 0이 아닌 값을 반환하는 경우 이 함수는 null 포인터를 반환합니다. 그렇지 않으면 파일이 성공적으로 닫혔음을 나타내기 위해 반환 this 됩니다.

넓은 스트림의 경우 스트림이 열린 이후 또는 마지막 호출 streampos이후 삽입이 발생한 경우 함수는 호출합니다 overflow. 또한 파일 변환 패싯 fac 을 사용하여 필요에 따라 호출 fac.unshift 하여 초기 변환 상태를 복원하는 데 필요한 모든 시퀀스를 삽입합니다. 생성된 각 형식 char 요소는 byte 파일 포인터 fp 에 의해 지정된 연결된 스트림에 마치 폼fputc(byte, fp)의 연속 호출에 의해 기록됩니다. 호출 fac.unshift 또는 쓰기가 실패하면 함수가 성공하지 못합니다.

예시

다음 샘플에서는 현재 디렉터리에 basic_filebuf_close.txt(콘텐츠는 "테스트") 및 iotest.txt(콘텐츠는 "ssss")의 두 파일을 가정합니다.

// basic_filebuf_close.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>

int main() {
   using namespace std;
   ifstream file;
   basic_ifstream <wchar_t> wfile;
   char c;
   // Open and close with a basic_filebuf
   file.rdbuf()->open( "basic_filebuf_close.txt", ios::in );
   file >> c;
   cout << c << endl;
   file.rdbuf( )->close( );

   // Open/close directly
   file.open( "iotest.txt" );
   file >> c;
   cout << c << endl;
   file.close( );

   // open a file with a wide character name
   wfile.open( L"iotest.txt" );

   // Open and close a nonexistent with a basic_filebuf
   file.rdbuf()->open( "ziotest.txt", ios::in );
   cout << file.fail() << endl;
   file.rdbuf( )->close( );

   // Open/close directly
   file.open( "ziotest.txt" );
   cout << file.fail() << endl;
   file.close( );
}
t
s
0
1

basic_filebuf::int_type

범위 내에서 basic_filebuf 이 형식을 범위 내의 동일한 이름의 형식과 동일하게 만듭니다 Tr .

typedef typename traits_type::int_type int_type;

basic_filebuf::is_open

파일이 열려 있는지 여부를 나타냅니다.

bool is_open() const;

Return Value

true 파일 포인터가 null이 아닌 경우

예시

// basic_filebuf_is_open.cpp
// compile with: /EHsc
#include <fstream>
#include <iostream>

int main( )
{
   using namespace std;
   ifstream file;
   cout << boolalpha << file.rdbuf( )->is_open( ) << endl;

   file.open( "basic_filebuf_is_open.cpp" );
   cout << file.rdbuf( )->is_open( ) << endl;
}
false
true

basic_filebuf::off_type

범위 내에서 basic_filebuf 이 형식을 범위 내의 동일한 이름의 형식과 동일하게 만듭니다 Tr .

typedef typename traits_type::off_type off_type;

basic_filebuf::open

파일을 엽니다.

basic_filebuf<Char_T, Tr> *open(
    const char* filename,
    ios_base::openmode mode,
    int protection = (int)ios_base::_Openprot);

basic_filebuf<Char_T, Tr> *open(
    const char* filename,
    ios_base::openmode mode);

basic_filebuf<Char_T, Tr> *open(
    const wchar_t* filename,
    ios_base::openmode mode,
    int protection = (int)ios_base::_Openprot);

basic_filebuf<Char_T, Tr> *open(
    const wchar_t* filename,
    ios_base::openmode mode);

매개 변수

filename
열어야 할 파일의 이름입니다.

mode
의 열거형 중 하나입니다 ios_base::openmode.

보호
_fsopen shflag 매개 변수에 해당하는 기본 파일 여는 보호는 _wfsopen.

Return Value

버퍼가 이미 열려 있거나 파일 포인터가 null 포인터인 경우 함수는 null 포인터를 반환합니다. 그 외의 경우 this를 반환합니다.

설명

이 함수는 호출fopen/wfopen(filename, strmode)FILE * 것처럼 to back을 basic_filebuf 사용합니다. strmode은 다음에서 결정됩니다.mode & ~(ate | binary)

  • ios_base::in"r" 가 됩니다(읽기 위해 기존 파일 열기).
  • ios_base::out 또는 ios_base::out | ios_base::trunc "w" 가 됩니다(기존 파일을 자르거나 쓰기 위해 만들기).
  • ios_base::out | app"a" (모든 쓰기를 추가하기 위해 기존 파일을 엽니다).
  • ios_base::in | ios_base::out"r+" 읽기 및 쓰기를 위해 기존 파일을 엽니다.
  • ios_base::in | ios_base::out | ios_base::trunc"w+" 됩니다(기존 파일을 자르거나 읽기 및 쓰기를 위해 만듭니다).
  • ios_base::in | ios_base::out | ios_base::app"a+" (읽기 및 모든 쓰기를 추가하기 위해 기존 파일을 엽니다).

0이 아닌 경우 mode & ios_base::binary 함수 b 가 추가되어 strmode 텍스트 스트림 대신 이진 스트림을 엽니다. 0이 아닌 경우 파일이 성공적으로 열리면 mode & ios_base::ate 스트림의 현재 위치가 파일 끝에 배치됩니다. 실패하면 파일이 닫힙니다.

위의 작업이 성공적으로 완료되면 언더플로 및 오버플에서 사용하기 위해 파일 변환 패싯이 결정> >(state_typegetlocuse_facet<codecvt<Char_T, char, traits_type::)됩니다.

파일을 열 nullptr 수 없으면 반환됩니다.

예시

를 사용하는 open예제를 참조하세요basic_filebuf::close.

basic_filebuf::operator=

이 스트림 버퍼 개체의 콘텐츠를 할당합니다. 복사본을 남겨 두지 않는 rvalue와 관련된 이동 할당입니다.

basic_filebuf& operator=(basic_filebuf&& right);

매개 변수

right
basic_filebuf 개체에 대한 rvalue 참조입니다.

Return Value

*this을(를) 반환합니다.

설명

멤버 연산자는 rvalue 참조로 처리되는 right의 내용을 사용하여 개체의 내용을 바꿉니다. 자세한 내용은 RValue 참조 선언자: &&를 참조하세요.

basic_filebuf::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보호된 가상 멤버 함수가 출력 버퍼에 요소를 ch = traits_type::to_char_type(_Meta) 삽입하려고 시도합니다. 수행할 수 있는 방법은 다양합니다.

  • 쓰기 위치를 사용할 수 있는 경우 요소를 쓰기 위칭에 저장하고 출력 버퍼에 대해 다음 포인터를 증분할 수 있습니다.

  • 출력 버퍼에 대해 새 스토리지 또는 추가 스토리지를 할당하여 쓰기 위치를 사용 가능하게 만들 수 있습니다.

  • 필요에 따라 파일 변환 패싯 fac 을 사용하여 출력 버퍼의 ch보류 중인 출력을 변환할 fac.out 수 있습니다. 생성된 문자 형식의 각 요소는 ch 파일 포인터 fp 에 의해 지정된 연결된 스트림에 마치 폼fputc(ch, fp)의 연속 호출에 의해 기록됩니다. 변환 또는 쓰기가 실패하면 함수가 성공하지 못합니다.

basic_filebuf::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푸시백할 요소가 현재 요소 앞에 이미 있는 요소입니다. 그렇지 않으면 해당 요소가 .로 대체됩니다 ch = traits_type::to_char_type(_Meta). 함수는 여러 가지 방법으로 요소를 다시 넣을 수 있습니다.

  • putback 위치를 사용할 수 있고 이 위치에 저장된 요소가 같은지 ch비교하면 입력 버퍼에 대한 다음 포인터가 감소할 수 있습니다.

  • 함수가 위치를 사용할 수 있게 만들 putback 수 있으면 다음 포인터를 해당 위치를 가리키도록 설정하고 해당 위치에 저장할 ch 수 있습니다.

  • 함수가 입력 스트림에 요소를 다시 푸시할 수 있는 경우 형식char의 요소를 호출 ungetc 하는 등의 작업을 수행할 수 있습니다.

basic_filebuf::p os_type

범위 내에서 basic_filebuf 이 형식을 범위 내의 동일한 이름의 형식과 동일하게 만듭니다 Tr .

typedef typename traits_type::pos_type pos_type;

basic_filebuf::seekoff

제어된 스트림의 현재 위치를 변경하려고 합니다.

virtual pos_type seekoff(
    off_type _Off,
    ios_base::seekdir _Way,
    ios_base::openmode _Which = ios_base::in | ios_base::out);

매개 변수

_Off
_Way 기준으로 검색할 위치입니다.

_길
오프셋 작업의 시작 지점입니다. 가능한 값은 seekdir을 참조하세요.

_어느
포인터 위치에 대한 모드를 지정합니다. 기본적으로는 읽기 및 쓰기 위치를 수정할 수 있습니다.

Return Value

새 위치 또는 잘못된 스트림 위치를 반환합니다.

설명

보호된 가상 멤버 함수는 제어된 스트림의 현재 위치를 변경하려고 시도합니다. 클래스 basic_filebuf<Char_T, Tr>개체의 경우 스트림 위치는 와이드 스트림을 구문 분석하는 데 필요한 오프셋 및 상태 정보를 저장하는 형식 fpos_t의 개체로 나타낼 수 있습니다. 오프셋 0은 스트림의 첫 번째 요소를 나타냅니다. (pos_type 형식의 개체는 최소한 fpos_t 개체를 저장합니다.)

읽기 및 쓰기용으로 열린 파일의 경우 입력 스트림과 출력 스트림이 나란히 배치됩니다. 삽입과 추출 간에 전환하려면 다음 중 하나 pubseekoff 또는 pubseekpos를 호출해야 합니다. pubseekoff(따라서 seekoff)에 대한 호출에는 텍스트 스트림, 이진 스트림와이드 스트림에 대한 다양한 제한이 있습니다.

파일 포인터가 null 포인터 fp 이면 함수가 실패합니다. 그렇지 않으면 호출 fseek(fp, _Off, _Way)하여 스트림 위치를 변경하려고 시도합니다. 해당 함수가 성공하고 호출fgetpos(fp, &fposn)을 통해 결과 위치를 fposn 확인할 수 있으면 함수가 성공합니다. 함수가 성공하면 포함하는 형식 pos_type 의 값을 반환합니다 fposn. 실패하면 잘못된 스트림 위치를 반환합니다.

basic_filebuf::seekpos

제어된 스트림의 현재 위치를 변경하려고 합니다.

virtual pos_type seekpos(
    pos_type _Sp,
    ios_base::openmode _Which = ios_base::in | ios_base::out);

매개 변수

_Sp
찾을 위치입니다.

_어느
포인터 위치에 대한 모드를 지정합니다. 기본적으로는 읽기 및 쓰기 위치를 수정할 수 있습니다.

Return Value

파일 포인터가 null 포인터 fp 이면 함수가 실패합니다. 그렇지 않으면 호출하여 fsetpos(fp, &fposn)스트림 위치를 변경하려고 합니다. 여기서 fposn 는 개체가 fpos_t 저장됩니다 pos. 성공하면 함수는 pos을 반환합니다. 실패하면 잘못된 스트림 위치를 반환합니다. 스트림 위치가 잘못되었는지를 확인하려면 반환 값을 pos_type(off_type(-1))과 비교합니다.

설명

보호된 가상 멤버 함수는 제어된 스트림의 현재 위치를 변경하려고 시도합니다. 클래스 basic_filebuf<Char_T, Tr>개체의 경우 스트림 위치는 와이드 스트림을 구문 분석하는 데 필요한 오프셋 및 상태 정보를 저장하는 형식 fpos_t의 개체로 나타낼 수 있습니다. 오프셋 0은 스트림의 첫 번째 요소를 나타냅니다. (pos_type 형식의 개체는 최소한 fpos_t 개체를 저장합니다.)

읽기 및 쓰기용으로 열린 파일의 경우 입력 스트림과 출력 스트림이 나란히 배치됩니다. 삽입과 추출 간에 전환하려면 다음 중 하나 pubseekoff 또는 pubseekpos를 호출해야 합니다. pubseekoff 호출(및)seekoff에는 텍스트 스트림, 이진 스트림 및 와이드 스트림에 대한 다양한 제한 사항이 있습니다.

넓은 스트림의 경우 스트림이 열린 이후 또는 마지막 호출 streampos이후 삽입이 발생한 경우 함수는 호출합니다 overflow. 또한 파일 변환 패싯 fac 을 사용하여 필요에 따라 호출 fac.unshift 하여 초기 변환 상태를 복원하는 데 필요한 모든 시퀀스를 삽입합니다. 생성된 각 형식 char 요소는 byte 파일 포인터 fp 에 의해 지정된 연결된 스트림에 마치 폼fputc(byte, fp)의 연속 호출에 의해 기록됩니다. 호출 fac.unshift 또는 쓰기가 실패하면 함수가 성공하지 못합니다.

basic_filebuf::setbuf

파생된 각 스트림 버퍼와 관련된 작업을 수행합니다.

virtual basic_streambuf<Char_T, Tr> *setbuf(
    char_type* _Buffer,
    streamsize count);

매개 변수

_완충기
버퍼에 대한 포인터입니다.

count
버퍼의 크기입니다.

Return Value

fp 파일 포인터가 null 포인터인 경우 보호된 멤버 함수는 0을 반환합니다.

설명

setbuf_Buffer 시작하는 요소 배열을 스트림에 count 대한 버퍼로 제공하기 위한 호출 setvbuf( fp, (char*) _Buffer, _IOFBF, count * sizeof( Char_T)) 입니다. 해당 함수가 0이 아닌 값을 반환하는 경우 이 함수는 null 포인터를 반환합니다. 그렇지 않으면 성공 신호로 돌아갑니다 this .

basic_filebuf::swap

basic_filebuf의 내용을 제공된 basic_filebuf의 내용으로 교환합니다.

void swap(basic_filebuf& right);

매개 변수

right
다른 basic_filebuf에 대한 lvalue 참조입니다.

basic_filebuf::sync

제어된 스트림을 연결된 외부 스트림과 동기화하려고 합니다.

virtual int sync();

Return Value

파일 포인터가 null 포인터 fp 이면 0을 반환합니다. 그렇지 않으면 오버플로를 호출하고 fflush(fp) 보류 중인 출력을 스트림으로 플러시하는 데 성공한 경우에만 0을 반환합니다.

basic_filebuf::traits_type

형식 이름을 Tr 템플릿 매개 변수와 연결합니다.

typedef Tr traits_type;

basic_filebuf::underflow

입력 스트림에서 현재 요소를 추출합니다.

virtual int_type underflow();

Return Value

함수가 성공할 수 없으면 이 함수가 반환됩니다 traits_type::eof. 그렇지 않으면 설명 섹션에 설명된 대로 변환된 값을 반환 ch합니다.

설명

보호된 가상 멤버 함수는 입력 스트림에서 현재 요소를 ch 추출하고 요소를 .로 traits_type::to_int_type(ch)반환하려고 시도합니다. 수행할 수 있는 방법은 다양합니다.

  • 읽기 위치를 사용할 수 있는 경우 읽기 위치에 저장된 요소로 사용하고 ch 입력 버퍼에 대한 다음 포인터를 이동합니다.

  • fgetc(fp)의 연속 호출처럼 형식char의 요소를 하나 이상 읽고 파일 변환 패싯 fac 을 사용하여 필요에 따라 호출 fac.in 하여 형식 Char_T 의 요소 ch 로 변환할 수 있습니다. 읽기 또는 변환에 실패하면 함수가 성공하지 못합니다.

참고 항목

<fstream>
C++ 표준 라이브러리의 스레드 보안
iostream 프로그래밍
iostreams 규칙