Стандартная функция printf

Понятие функции

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

Язык Си имеет мощные средства создания собственных функций пользователя. Однако на первых порах мы будем использовать стандартные готовые функции, предоставляемые нам библиотекой языка Си. Для вызова функции необходимо записать следующую конструкцию языка:

БНФ:

вызов_функции =

имя_ функции "(" [ аргумент { "," аргумент } ] ")"

Пример:

printf("Это простое число %d", num);

Здесь имя функции "printf", функция имеет два аргумента, первый - строка символов, второй - переменная num.

Аргументы функции - это данные, которые передаются функции для обработки. Функция может не только получать аргументы, но и возвращать вычисленные значения:

A = sin(x);

Если функция возвращает значение, то ее вызов можно использовать в различных операциях:

A = sin(x) * cos(y);

n = printf("%d", k) + 5;

Функции sin и cos возвращают вычисленные значения синуса и косинуса, а функция printf возвращает количество выведенных на экран байт.

Основная функция, описанная как void main (void), не принимает аргументов и не возвращает значения (void - пусто).

Функция предназначена для вывода информации на стандартное устройство вывода (stdout), которым обычно является экран дисплея.

БНФ:

"printf" "(" формат { "," аргумент } ")"

Формат - это адрес строки символов, которая выводится в стандартное устройство вывода.

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

%d - для вывода целых чисел;

%c - для вывода образа символа, соответствующий аргумент должен содержать код символа;

%f - для вывода вещественного числа в виде целой и дробной части;

%e - для вывода вещественного числа в виде мантиссы и порядка;

%g - для вывода вещественного числа в виде %f или %e в зависимости от значения числа;

%u - для вывода беззнакового целого числа в десятичной системе счисления;

%o - для вывода беззнакового целого числа в восмеричной системе счисления;

%x - для вывода беззнакового целого числа в шестнадцатеричной системе счисления;

%s - для вывода на экран символьной строки, соответствующий аргумент должен быть адресом строки (т.е. именем символьного массива или строковой константой).

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

БНФ:

модификатор = ["-"] {цифра1} [ "." {цифра2} ][l]

Примеры спецификаций преобразований с модификаторами:

%-20.6lf, %6d, %8.4f

Если присутствует "минус", то данные выравниваются по левой колонке поля, отведенного для вывода числа. Ширина этого поля определяется числом, составленным из цифр поля <цифра1>. Для вещественных чисел можно дополнительно задавать число знаков после запятой с помощью числа, составленного из цифр <цифра2>. Буква l в конце модификатора обозначает преобразование для длинных типов данных, т.е. long, unsigned long и double.

Функция printf возвращает число успешно выведенных байт информации.

Пример:

double a=-78.98;

int c=24;

printf("a=%8.4lf,c=%6d",a,c);

На экране:

a=-78.9800,с= 24




double arrow
Сейчас читают про: