텍스트 및 이진 모드의 유니코드 스트림 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 ); 명령을 사용합니다.

참고 항목

범주별 유버니설 C 런타임 루틴
입력 및 출력