Заполнить битовое поле с клавиатуры

Думаю что проблема в размере переменной в которую будет записано считанное значение. В

спецификации

формата функции scanf_s написано, что %u - это

unsignedint

(т.е. 4 байта), а ты передаешь 3 бита, поэтому соседние байты при записи затираются.