c структура: для ввода требуется число построчно, нажав "ввод" после каждого числа

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

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

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

1 ответ

Две вещи, чтобы упомянуть,

  • Уважайте тип данных
  • Используйте максимальную ширину поля с scanf.

Написать

 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, (выделено мной)

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

Другие вопросы по тегам