Модификаторы формата
Модификаторы формата применяются для управления шириной поля, отводимого для размещения значения. Модификаторы – это одно или два числа, первое из которых задает минимальное количество позиций, отводимых под число, а второе – сколько из этих позиций отводится под дробную часть числа (точность). Если указанного количества позиций для размещения значения недостаточно, автоматически выделяется большее количество позиций:
· %-minC или %minC;
· %-min.precisionC или Xmin.precisionC.
Здесь С – спецификация формата из приведенной выше таблицы,
min – число, задающее минимальную ширину поля. Смысл модификатора precision, также задаваемого десятичным числом, зависит от спецификации формата, с которой он используется:
· при выводе строки (спецификация %s)precisionуказывает максимальное число символов для вывода;
· при выводе вещественного числа (спецификации %fили %e) precisionуказывает количество цифр после десятичной точки;
· при выводе целого числа (спецификации %dили %i), precisionуказывает минимальное количество выводимых цифр. Если число представляется меньшим числом цифр, чем указано в precision,выводятся ведущие (начальные) нули;
· при выводе вещественного числа (спецификации %d или %G) precisionуказывает максимальное количество значащих цифр, которые будут выводится.
Символ минус (-) указывает на то, что значение выравнивается по левому краю и, если нужно, дополняется пробелами справа. При отсутствии минуса значение выравнивается по правому краю и дополняется пробелами слева.
Перед спецификацией могут использоваться префиксы lи h, например, %lf, %hu.
Префикс hс типами d, i, о, х и Xуказывает на то, что тип аргумента short int,а с типом u – short unsigned int.
Префикс l с типами d, i,о, х и Xуказывает на то, что тип аргумента long int,с типом u - long unsigned int,а с типами е, Е, f, gи G– что тип аргумента double,а не float.
Пример:
#include <stdio.h>
int main(){
int int1=45,int2=13;
float f=3.621;
double db1=2.23;
char ch='z', *str="ramambahari";
printf("int1 = %d| int2 = %3d| int2 = %-4d|\n",int1, int2, int2);
printf("int1 = %X| int2 = %3x| int2 = %4o|\n", int1, int2, int2);
printf("f = %f| f = %4.2f| f = %6.1f|\n", f, f, f);
printf("f = %g| f = %e| f = %+E|\n", f, f, f);
printf("db1 = %5.2lf| db1 = %e| db1 = 4.1G|\n", db1, db1, db1);
printf("ch = %c| ch = %3c|\n", ch, ch);
printf("str = %14s|\n str = %-14s|\n str = %s|\n", str, str, str);
return 0;
}
Дата добавления: 2015-10-09; просмотров: 947;