I/O streamu kódování Unicode v textovém a binárním režimu
Když stream Unicode vstupně-výstupní rutina (například fwprintf
, fwscanf
, fgetwc
, fputwc
, fgetws
, nebo fputws
) pracuje se souborem, který je otevřen v textovém režimu (výchozí), proběhnou dva druhy převodů znaků:
Převod kódování Unicode-to-MBCS nebo MBCS-to-Unicode Pokud funkce stream-V/V unicode funguje v textovém režimu, předpokládá se, že zdrojový nebo cílový datový proud je posloupnost vícebajtových znaků. Proto funkce zadávání datových proudů Unicode převádějí vícebajtové znaky na široké znaky (jako by volání funkce
mbtowc
). Z stejného důvodu funkce výstupu streamu Unicode převedou široké znaky na vícebajtové znaky (jako by volánímwctomb
funkce).Překlad návratového kanálu (CR-LF) na začátek řádku K tomuto překladu dochází před převodem MBCS – Unicode (pro vstupní funkce streamu Unicode) a za převodem Unicode - MBCS (pro výstupní funkce streamu Unicode). Během vstupu se každá kombinace návratového řádku řádku přeloží do jednoho znaku odřádkování. Během výstupu se každý znak odřádkování přeloží do kombinace návratového řádku řádku.
Pokud však funkce stream-V/O unicode pracuje v binárním režimu, předpokládá se, že soubor je Unicode a během vstupu nebo výstupu nedojde k žádnému převodu znaků CR-LF. _setmode( _fileno( stdin ), _O_BINARY );
Pomocí pokynů můžete správně použít wcin
textový soubor UNICODE.
Viz také
Rutiny UCRT (Universal C runtime) podle kategorie
Vstup a výstup