Студопедия

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

Разделы сайта

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






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






 

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

 

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

}

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.