2016-12-22 1 views
0

Как добавить 10-значное число без ввода одной цифры в каждой строке.c структура: ввод требует номера строки за строкой путем нажатия «enter» после каждого номера

struct test { 
    unsigned short telephone[10]; 
    //Some Code Here ... 
} 

for (j = 0; j < 10; j++) { 
    scanf("%d", & seats[position - 1].telephone[j]); 
} 
+0

'зсапЕ ("% d"' -> 'зсапЕ ("% 1d"' –

+0

большое спасибо – arvins

+0

http://c-faq.com/stdio/scanfprobs.html –

ответ

1

Две вещи говоря,

  • 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, (курсив мой )

Элемент ввода определяется как длинной последовательности ввода символов, которая не превышает любая заданная ширина поля и которая является или является префиксом соответствующей последовательности ввода.