|
Программирование >> Процедурные приложения
переменной из списка задание формата вывода осуществляется с помощью следующего синтаксиса: %[флаги][ширина][.точность][{h 1}]спецификатор В простейшем случае указывается только знак процента и спецификатор, например %f. Обязательное поле спецификатор указывает на способ интерпретации переменной: как символа, строки или числа (табл. 10.2). Необязательное поле флаги определяет дополнительные особенности вывода (табл. 10.3). Необязательное поле ширина задает минимальную ширину поля вывода. Если количество выводимых символов меньше указанного значения, поле дополняется слева или справа пробелами или нулями в зависимости от установленных флагов. Необязательное поле точность интерпретируется следующим образом: при выводе чисел формата е, Е и fопределяет количество цифр после десятичной точки (последняя цифра округляется); при выводе чисел формата gи G определяет количество значащих цифр (по умолчанию 6); при выводе целых чисел определяет минимальное количество цифр (если цифр недостаточно, число дополняется ведущими нулями); при выводе строк определяет максимальное количество символов, лишние символы отбрасываются (по умолчанию строка выводится, пока не встретится символ \о). Поля ширина и точность могут быть заданы с помощью символа-заменителя *. В этом случае в списке переменных должны быть указаны их настоящие значения. Необязательные модификаторы hи 1 определяют размерность целочисленной переменной: hсоответствует ключевому слову short, al - long.
Функция printf() В следующей программе демонстрируется, как правильно применять различные спецификаторы форматирования к переменным четырех типов: символу, массиву символов, целому числу и числу с плавающей запятой. Программа содержит достаточно подробные комментарии, а, кроме того, выводимые строки пронумерованы, чтобы легче было обнаружить, какая из функций их сгенерировала. * printf.c * Эта программа на языке С демонстрирует применение * спецификаторов форматирования функции printfO. #include <stdio.h> void main () { char с = А, psz[]= Строка для экспериментов ; int iln = 0, ivalue = 1234; double dPi = 3.1415 92 65; /* 1 - вывод символа с */ printf( \n[%2d] %c ,++iln, c) ; /* 2 - вывод ASCII-кода символа с */ printf< \n[%2d] %d ,++iln, c); /* 3 - вывод символа с ASCII-кодом 90 */ printf( \n[%2d] %c ,++iln, 90); /* 4 - вывод значения ivalue в восьмеричной системе */ printf( \n[%2d] %o ,++iln, ivalue); /* 5 - вывод значения ivalue в шестнадцатеричной */ /* системе с буквами в нижнем регистре */ printf( \n[%2d]%x ,++iln, ivalue); /* 6 - вывод значения ivalue в шестнадцатеричной */ /* системе с буквами в верхнем регистре */ printf( \n[%2d]%X ,++iln, ivalue); /* 7 - вывод одного символа, минимальная ширина поля равна 5, */ /* выравнивание вправо с дополнением пробелами */ printf( \n[%2d]%5c ,++iln, с); . /* 8 - вывод одного символа, минимальная ширина поля равна 5, */ /* выравнивание влево с дополнением пробелами */ printf( \n[%2d]%-5c ,++iln, с); /* 9 - вывод строки, отображаются 24 символа */ printf( \n[%2d]%s ,++iln, psz); /* 10 - вывод минимум 5-ти символов строки, отображаются 24 символа */ printf ( \n[%d]%5s ,-n-iln, psz); /* 11 - вывод минимум 38-ми символов строки, */ /* выравнивание вправо с дополнением пробелами */ printf( \n[%d]%38s ,++iln, psz); /*12 - вывод минимум 38-ми символов строки, */ /* выравнивание влево с дополнением пробелами */ printf( \n[%d]%-38s ,++iln, psz); /* 13 - вывод значения ivalue, по умолчанию отображаются 4 цифры */ printf( \n[%d]%d ,++iln, ivalue); /* 14 - вывод значения ivalueсо знаком */ printf( \n[%d]%+d ,++iln, ivalue); /* 15 - вывод значения ivalueминимум из 3-х цифр, */ /* отображаются 4 цифры*/ printf( \n[%d]%3d ,++iln, ivalue); /* 16 - вывод значения ivalueминимум из 10-ти цифр, */ /* выравнивание вправо с дополнением пробелами */ printf( \n[%d]%10d ,++iln, ivalue); /* 17 - вывод значения ivalueминимум из 10-ти цифр, */ /* выравнивание влево с дополнением пробелами */ printf( \n[%d]%-10d ,++iln, ivalue); /* 18 - вывод значения ivalue минимум из 10-ти цифр, */ /* выравнивание вправо с дополнением нулями */ printf ( \n[%d]%010d ,-n-iln, ivalue); /* 19 - вывод значения dPiс форматированием по умолчанию */ printf( \n[%d]%f ,++iln, dPi); . /* 20 - вывод значения dPi, минимальная ширина поля равна 20, */ /* выравнивание вправо с дополнением пробелами */ printf( \n[%d]%20f ,++iln, dPi) ; /* 21 - вывод значения dPi, минимальная ширина поля равна 20, */ /* выравнивание вправо с дополнением нулями */ printf( \n[%d]%020f ,++iln, dPi) ; /* 22 - вывод значения dPi, минимальная ширина поля равна 20, */ /* выравнивание влево с дополнением пробелами */ printf( \n[%d]%-20f ,++iln, dPi); /* 23 - вывод 19-ти символов строки, */ /* минимальная ширина поля равна 19 */ printf( \n[%d]%19.19s ,++iln, psz); /* 24 - вывод первых двух символов строки */ printf( \n[%d]%,2s ,++iln, psz); /*25 - вывод первых двух символов строки, минимальная ширина поля */ /* равна 19, выравнивание вправо с дополнением пробелами */ printf( \n[%d]119.2s ,++iln, psz); /* 26 - вывод первых двух символов строки, минимальная ширина поля */ /* равна 19, выравнивание влево с дополнением пробелами */ printf( \n[%d]%-19.2s ,++iln, psz); /* 27 - вывод первых шести символов строки, минимальная ширина поля /* равна 19, выравнивание вправо с дополнением пробелами */
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |