присвойте цифре c значение di git в char, используя scanf - PullRequest
1 голос
/ 03 апреля 2020

Если у меня есть char: char ch

, и я хочу присвоить ему значение цифра c для di git, например, если пользователь вводит 0, я хочу char иметь значение 0 ('\0'), а не 48 ('0')

, если я попытаюсь scanf("c", &ch), ему будет присвоено 48 (значение ascii для 0), а если я попытаюсь scanf("d", &ch) я получаю сообщение об ошибке.

Я знаю, что это можно сделать, получив его в виде строки, а затем преобразовав его в тип char, а затем используя ch-'0', чтобы получить значение цифры c, но возможно ли это без это лишние шаги?

1 Ответ

1 голос
/ 03 апреля 2020

присваивать число c значение di git в char, используя scanf

Начиная с C99, прямой путь

char ch;
scanf("%hdd", &ch);
// or to insure reading only 1 character
scanf("%1hdd", &ch);

До этого ниже распространено. @ Lundin

char ch;
int ch_int;
if (scanf("%d", &ch_int) == 1) {
  ch = ch_int;

Или прочитайте char и преобразуйте его символьное значение в его числовое значение c. (ОП уже знаком с этим)

char ch;
scanf("%c", &ch);
ch -= '0';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...