Преобразование Int в char при использовании% c на языке c - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть следующий код.

int ant = 10;
char converter = ant;
printf("This is where the char prints: %c", converter);

Почему консоль распечатывается только при запуске:

This is where the char prints:

Почему это происходит?И возможно ли все еще использовать% c и распечатать значение?Я понимаю, что изменение% c на% d позволит мне увидеть результат, но я хочу знать, почему.

1 Ответ

0 голосов
/ 25 сентября 2018

Вы печатаете символ , закодированный числом 10: спецификатор формата %c используется для вывода символов, а не их числовых значений.

В ASCII (большинствоскорее всего используется кодировка), это \n;символ перевода строки.Ваш терминал, вероятно, может справиться с этим, и вы увидите дополнительную строку в вашем выводе.

Если вы хотите напечатать числовое значение converter, тогда просто используйте %d в качестве форматаспецификатор (типы char неявно преобразуются в типы int на вызывающем сайте).

...