КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Вывод массива структур в виде таблицы
Массив структур удобно выводить в виде таблицы, например, как в телефонной книге, экзаменационной ведомости и т.д. Данная задача, несмотря на свою простоту, имеет некоторые тонкости. Очевидный способ вывода таблицы заключается в том, чтобы выводить содержимое каждой структуры на одной строке, разделяя поля пробелами:
for (int i=0; i<SIZE; i++) { printf("%s ", workers[i].name); printf("%d ", workers[i].age); printf("%g\n", workers[i].salary); }
Такой способ отображает весь массив, но колонки оказываются неровными:
Для ровного вывода следует воспользоваться табуляцией – «\t»
for (int i=0; i<SIZE; i++) { printf("%s\t", workers[i].name); printf("%d\t", workers[i].age); printf("%g\n", workers[i].salary); }
Однако и в данном случае могут возникнуть проблемы. Например, если одно из имен слишком длинное:
Хорошим способом решения этой проблемы является использование модификатора количества позиций под переменную:
for (int i=0; i<SIZE; i++) { printf("%10s\t", workers[i].name); printf("%d\t", workers[i].age); printf("%g\n", workers[i].salary); }
И, наконец, для выравнивания по левому краю существует модификатор «-».
for (int i=0; i<SIZE; i++) { printf("%-10s\t", workers[i].name); printf("%d\t", workers[i].age); printf("%g\n", workers[i].salary); }
|