Здравствуйте!
Возникла необходимость повторить примеры из книги Грега Перри и Дина Миллера "Программирование на C для начинающих" (2015 г. 3-е изд.). В качестве IDE в книге используется Code::Blocks.
Простейшие примеры воспроизводятся без каких-либо проблем, т.к. файлы в проекте сохраняются в кодировке UTF-8 и с ВЫВОДОМ символов кириллицы в консоль проблем нет.
Следующий пример при ВВОДЕ символов кириллицы в переменные типа char с использованием функции scanf() естественно обрабатывается некорректно, т.к. тип char - однобайтный, а UTF-8 кодирует кириллицу в 2 байта.
#include <stdio.h>
int main()
{
char firstInitial;
char lastInitial;
int age;
int favoriteNumber;
printf("С какой буквы начинается Ваша фамилия?\n");
scanf(" %c", &lastInitial);
printf("С какой буквы начинается Ваше имя?\n");
scanf(" %c", &firstInitial);
printf("Сколько Вам лет?\n");
scanf(" %d", &age);
printf("Какое Ваше любимое число? (Только целое)\n");
scanf(" %d", &favoriteNumber);
printf("\n\nВаши инициалы: %c.%c., и Вам %d лет.", firstInitial, lastInitial, age);
printf("\nВаше любимое число %d.\n\n", favoriteNumber);
return 0;
}
Подскажите, что нужно сделать, чтобы предыдущий пример кода корректно обработал символы кириллицы?
ТС не появлялся на Форуме более полугода по состоянию на 13/07/2019 (последняя явка: 22/02/2016). Модератором раздела принято решение закрыть тему.
--zg_nico