|
Глава 4 - СОВЕТЫ ПО ПРИМЕНЕНИЮ |
Страница 11 из 12
Задание фиксированной ширины полей оказывается полезным при печати данных столбцами. Поскольку шириной поля по умолчанию является "ширина" числа, при повторном использовании оператора printf(" %d %d %d\n" , val1, val2, val3); будут получены неровные столбцы чисел, если эти числа состоят из разного количества цифр. Например, результат мог бы выглядеть следующим образом: 12 234 1222 (Здесь предполагается, что между обращениями к оператору печати значения переменных изменялись.) Эти же данные можно представить в улучшенном виде, если за дать достаточно большую фиксированную ширину поля. При ис пользовании оператора printf( %9d %9d %9d\n" , val1, val2, val3); результат будет выглядеть так: 12 234 1222 Наличие пробелов между спецификациями преобразования гарантирует, что даже в том случае, если все поле будет заполнено, символы, соответствующие данному числу, не перейдут в следующее поле. Это вызвано тем обстоятельством, что обычные символы, имеющиеся в управляющей строке, включая пробелы, всегда печатаются. С другой стороны, если печатаемое число включено в некоторую фразу, то часто при его выводе оказывается удобным задать поля равной или меньше требуемой. Это дает возможность включить число в фразу без добавления лишних пробелов. Например результатом работы оператора printf(" Скороход Беппо пробежал %.2f мили за 3 ч.\n", distance); могла бы быть следующая фраза: Скороход Беппо пробежал 10.22 мили за 3 ч. Изменяя спецификацию преобразования на %10.2f, получим Скороход Беппо пробежал 10.22 мили за 3 ч.
|
|