Как правильно внести с помощью ввода число в переменную char? С помощью scanf?

#include <iostream>
#include <stdio.h>
#include <Windows.h>
using namespace std;

int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    
    char c,
         f, 
         b;
    unsigned char n;
    unsigned int UnitStateWord;
    printf("Введите код состояния (0 - 31) >");
    scanf_s("%d", &c);// как вместо этого сделать ввод целого числа в переменную char?
    UnitStateWord = ((unsigned char)c & 0x1F) << 11;
    return 0;

}

Ответы (1 шт):

Автор решения: Mikhailo

В языке С в форматной строке для scanf'ов есть префиксы для %d и %u - h для [unsigned] short int, hh для [signed/unsigned] char, ll для [unsigned] long long int.

Так что у вас достаточно написать

scanf_s("%hhd", &c);
→ Ссылка