Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Вывод массива структур в виде таблицы






 

Массив структур удобно выводить в виде таблицы, например, как в телефонной книге, экзаменационной ведомости и т.д. Данная задача, несмотря на свою простоту, имеет некоторые тонкости. Очевидный способ вывода таблицы заключается в том, чтобы выводить содержимое каждой структуры на одной строке, разделяя поля пробелами:

 

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);

}

 

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал