Две вещи говоря,
- Honor тип данных
- Сделать использование ширины максимального поля с зсапЕ.
Запись
scanf("%1hu", &seats[position-1].telephone[j]);
//^
, который читает только 1 элемент из входного сигнала.
Примечание: h
является длина модификаторов, который описан как
h
Указывает, что следующий d
, i
, o
, u
, x
, X
или n
спецификатор преобразования применяется к аргументу с type pointer
по short int
или unsigned short int
.
Также в связи с C11
, глава §7.21.6.2/P9, (курсив мой )
Элемент ввода определяется как длинной последовательности ввода символов, которая не превышает любая заданная ширина поля и которая является или является префиксом соответствующей последовательности ввода.
'зсапЕ ("% d"' -> 'зсапЕ ("% 1d"' –
большое спасибо – arvins
http://c-faq.com/stdio/scanfprobs.html –