Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lek13_14.doc
Скачиваний:
9
Добавлен:
13.07.2019
Размер:
695.3 Кб
Скачать

Функция printf()

В следующей программе демонстрируется, как правильно применять различные спецификаторы форматирования к переменным четырех типов: символу, массиву символов, целому числу и числу с плавающей запятой. Программа содержит достаточно подробные комментарии, а, кроме того, выводимые строки пронумерованы, чтобы легче было обнаружить, какая из функций их сгенерировала.

/* *       printf.c *  Эта программа на языке С демонстрирует применение *   спецификаторов форматирования функции printfO. */

#include <stdio.h>

void main () {

char  с     = 'А',

psz[]= "Строка для экспериментов"; int  iln  = 0,

ivalue = 1234; double dPi   = 3.14159265;

/* 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]%х",++iln, ivalue);

/* 6 — вывод значения ivalue в шестнадцатеричной */ /*     системе с буквами в верхнем регистре    */ printf("\n[%2d]%Х",++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",++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",++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, выравнивание вправо с дополнением пробелами */ printf ("\n[%d]%*.*s",++iln, 19,6, psz);

/* 28 — вывод значения dPi, минимальная ширина поля */ /*      равна  10, 8 цифр после десятичной точки    */ printf("\n[%d] %10.8f",++iln, dPi);

/* 29 — вывод значения dPi, минимальная ширина поля */ /* равна 20, 2 цифры после десятичной точки, */ /* выравнивание вправо с дополнением пробелами */ printf("\n[%d]%20.2f",++iln, dPi) ;

/*' 30 — вывод, значения dPi, минимальная ширина поля */ /*      равна 20, 4 цифры после десятичной точки,   */ /*    .  выравнивание влево с дополнением пробелами */ printf("\n[%d]%-20.4f",++iln, dPi);

/* 31 — вывод значения dPi, минимальная ширина поля */ /* равна 20, 4 цифры после десятичной точки, */ /* выравнивание вправо с дополнением пробелами */ printf("\n[%d]%20.4f",++iln, dPi);

/* 32 — вывод значения dPi, минимальная ширина поля */ /* равна 20, 2 цифры после десятичной точки, */ /* выравнивание вправо с дополнением пробелами, */ /* научный формат (с экспонентой)        */ printf("\n[%d]%20.2e",++iln, dPi);

Результат работы программы будет выглядеть следующим образом:

[ 1] А

[ 2] 65

[ 3] Z

[ 4] 2322   

[ 5] 4d2

[ 6] 4D2

[ 7]     А

[ 8] А

[ 9] Строка для экспериментов

[10] Строка для экспериментов

[11] Строка для экспериментов

[12]Строка для экспериментов

[13]1234                .

[14] +1234     

[15]1234

[16]      1234

[17]1234

[18] 0000001234

[19]3.141593

[20]              3.141593

[21]0000000000003.141593

[22] 3.141593

[23]Строка для эксперим

[24] Ст

[25]           Ст

[26] Ст

[27]           Строка

[28]3.14159265

[29]              3.14

[30]3.1416

[31]              3.1416

[32]            3.14е+000

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]