В общем, работаю через Mint, gcc из коробки. Требуется ввести код символа ACII, и на выходе получить собственно символ. Символы получаю но не те что нужны, при вводе кода 218, получаю знак вопроса(?), а при вводе кода 77, получаю символ "M". Что я делаю не так?
Вы имеете в виду ascii? Тогда непонятно, во-первых, что вы ожидаете получить, вводя 77? (наберите man ascii и посмотрите на таблицу) Во-вторых, при чем тут gcc? Ну и код покажите.
Дмитрий Демидов: Да, извините ASCII, к слову вы правы, 77 действительно должен выдать знак M, но проблема актуальна, после кода 127 появляется просто знак вопроса. А нужен мне символ с кодом 218
{
char ch;
int ab;
printf("Введите код символа\n");
scanf("%d", &ab);
ab = ch;
printf("Код %d, равен символу %c\n", ch, ch)
Andropov24: в UTА-8 символы начинающиеся с единицы в старшем бите (т.е. с кодом больше 127) многобайтные. А ваш теримнал, скорее всего, ждет от вас utf-8.
То что вы видите на экране интерпретируется вашим терминалом.
Полагаю, что терминал ожидает увидеть UTF-8, а не ASCII, и пытается интерпретировать соответствующим образом.
Вариант 1. Погуглить на тему конвертирования из одной кодировки в другую.
Вариант 2. Изменить настройки терминала.
Вариант 3. Не использовать ASCII, если в этом нет острой необходимости.