텍스트 및 이진 모드의 유니코드 스트림 I/OUnicode Stream I/O in Text and Binary Modes

유니코드 스트림 I/O 루틴(예: fwprintf, fwscanf, fgetwc, fputwcfgetws 또는 fputws)을 텍스트 모드(기본값)로 열린 파일에서 사용하면 두 종류의 문자 변환이 발생합니다.When a Unicode stream I/O routine (such as fwprintf, fwscanf, fgetwc, fputwc, fgetws, or fputws) operates on a file that is open in text mode (the default), two kinds of character conversions take place:

  • 유니코드에서 MBCS로 또는 MBCS에서 유니코드로의 변환.Unicode-to-MBCS or MBCS-to-Unicode conversion. 유니코드 스트림 I/O 함수를 텍스트 모드에서 사용할 경우 원본 또는 대상 스트림은 멀티바이트 문자 시퀀스로 간주됩니다.When a Unicode stream-I/O function operates in text mode, the source or destination stream is assumed to be a sequence of multibyte characters. 따라서 유니코드 스트림 입력 함수는 멀티바이트 문자를 와이드 문자로 변환합니다(mbtowc 함수를 호출한 것으로 간주).Therefore, the Unicode stream-input functions convert multibyte characters to wide characters (as if by a call to the mbtowc function). 마찬가지로 유니코드 스트림 출력 함수는 와이드 문자를 멀티바이트 문자로 변환합니다(wctomb 함수를 호출한 것으로 간주).For the same reason, the Unicode stream-output functions convert wide characters to multibyte characters (as if by a call to the wctomb function).

  • 캐리지 리턴 - 줄 바꿈(CR-LF) 변환.Carriage return - linefeed (CR-LF) translation. 이 변환은 MBCS에서 유니코드로 변환(유니코드 스트림 입력 함수) 전 및 유니코드에서 MBCS로 변환(유니코드 스트림 출력 함수) 이후에 발생합니다.This translation occurs before the MBCS - Unicode conversion (for Unicode stream input functions) and after the Unicode - MBCS conversion (for Unicode stream output functions). 입력하는 동안 각 캐리지 리턴 - 줄 바꿈 조합은 단일 줄 바꿈 문자로 변환됩니다.During input, each carriage return - linefeed combination is translated into a single linefeed character. 출력하는 동안 각 줄 바꿈 문자는 캐리지 리턴 - 줄 바꿈 조합으로 변환됩니다.During output, each linefeed character is translated into a carriage return - linefeed combination.

    그러나 유니코드 스트림 I/O 함수가 이진 모드에서 작동하는 경우 파일은 유니코드로 간주되며 입력 또는 출력하는 동안 CR-LF 변환 또는 문자 변환이 발생합니다.However, when a Unicode stream-I/O function operates in binary mode, the file is assumed to be Unicode, and no CR-LF translation or character conversion occurs during input or output. 유니코드 텍스트 파일에서 wcin을 올바르게 사용하려면 _setmode( _fileno( stdin ), _O_BINARY );를 사용하십시오.Use the _setmode( _fileno( stdin ), _O_BINARY ); instruction in order to correctly use wcin on a UNICODE text file.

참고 항목See Also

범주별 런타임 루틴 Run-Time Routines by Category
입력 및 출력Input and Output