не могу осилить работу с юникодом, wchar и не могу найти внятную инфу по этой теме с примерами. например есть файл в котором есть слово «Москва», размер файла 13 байт. как я понимаю размер каждой буквы 2 байта, конец файла 1 байт? sizeof(wchar) = 4 байта. если я пишу что-то типа:
setlocale(LC_ALL, "");
FILE *fd;
fd = fopen("test", "r");
fseek(fd,0,SEEK_END);
int size = ftell(fd);
fseek(fd,0,SEEK_SET);
wchar buff[size];
fgetws(buff,size,fd); //Здесь всегда выдает NULL
for (int i=0; buff[i] != '\0'; i++) { //не могу настроить чтобы в терминале вывод работал с wchar, поэтому такие костыли
putchar(wctob(buff[i]));
}
putchar('\n');