Доброго времени суток. Некоторое время изучаю программирование на языке Си и столкнулся с ситуацией, что наблюдаю проблемы с вводом-выводом русских букв
Например такая программа:
#include <stdio.h>
#include <locale.h>
int main(void) {
setlocale(LC_ALL, "");
printf("Введи BIG букву:\n");
int ch = 0;
ch = getchar();
putchar(ch);
return 0;
}
Правильно работает с английскими буквами, но с русскими буквами выводит белый ромбик со знаком вопроса:
Введи BIG букву:
Ж
�
Притом проблем с выводом русских букв написанных в самом тексте программы нет
Но вот такая программа даже без всяких локалей всё выводит правильно:
#include <stdio.h>
int main(void) {
printf("Введи BIG букву:\n");
int ch[1] = {};
scanf ("%s", ch);
printf("%s", ch);
return 0;
}
Введи BIG букву:
Ж
Ж
Я не понимаю чем вторая программа концептуально отличается от первой. Казалось бы если неверно работает первая, то и вторая должна работать неверно. А если верно работает вторая то и первая должна работать. Но это не так