0
Пример кода:Почему я не могу напечатать символ юникода в c с помощью wchar_t?
int main(int argc, char *argv[]){
int x = sizeof(wchar_t);
printf("%i\n",x);
wchar_t t = 0x011E;
printf("%c\n\n",t);
wchar_t a = 0x0041;
printf("%c\n\n",a);
}
, который будет печатать:
4
A
0x011E является UTF-16 code для персонажа изб. Почему он не печатается?
Я считаю, что вам нужен '% lc' для' wchar'. Возможно, вам придется использовать 'wprintf'. –
Во-первых: спецификация преобразования ''% c "' ожидает значение типа 'char', а не значение типа' wchar_t'. Вы вызываете Undefined Behavior, передавая значения неправильного типа 'printf()'. Также вам нужно '#include' для правильного прототипа для 'printf()' –
pmg
Это может зависеть от вашей среды (в частности, операционной системы, компилятора и т. Д.). Обычно терминалом (например, на большинстве Linux) является UTF-8 закодирован. –