다음을 통해 공유


텍스트 및 이진 모드의 유니코드 스트림 I/O

유니코드 스트림 I/O 루틴(fwprintf, fwscanf, fgetwc, fputwcfgetws, 또는 fputws와 같은)은 두 종류의 문자 변환이 일어나는 텍스트 모드(기본값)로 열린 파일에서 동작합니다.

  • 유니코드에서 MBCS 또는 유니코드에서 MBCS 변환입니다. 유니코드 스트림 I/O 함수가 텍스트 모드에서 작동할 경우 소스 또는 대상 스트림은 멀티바이트 문자 시퀀스로 간주됩니다. 따라서 유니코드 스트림 입력 함수는 멀티바이트 문자를 와이드 문자로 변환합니다(mbtowc 함수를 호출한 것으로 간주). 마찬가지로 유니코드 스트림 출력 함수는 와이드 문자를 멀티바이트 문자로 변환합니다(wctomb 함수를 호출한 것으로 간주).

  • 캐리지 리턴-줄 바꿈 (CR-LF) 번역 MBCS–유니코드 변환(유니코드 스트림 입력 함수) 전 및 유니코드–MBCS 변환(유니코드 스트림 출력 함수) 이후에 이 번역은 일어납니다. 입력 하는 동안 각 캐리지 리턴 – 줄 바꿈 조합은 단일 줄 바꿈 문자로 변환됩니다. 출력 하는 동안 각 단일 줄 바꿈 문자는 각 캐리지 리턴 – 줄 바꿈 조합으로 변환됩니다.

그러나, 유니코드 스트림 I/O 함수가 이진 모드에서 작동할 때, 파일이 유니코드로 간주되며 CR-LF 번역 또는 문자 변환이 입력 또는 출력하는 동안 발생합니다. 유니코드 텍스트 파일에서 wcin을 올바르게 사용하기 위해서 _setmode( _fileno( stdin ), _O_BINARY );를 사용합니다.

참고 항목

참조

범주별 런타임 루틴

입력 및 출력