Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Форматированный вывод данных



Функция printf () (прототип содержится в файле stdio.h) обеспечивает форматированный вывод. Ее можно записать в следующем формальном виде:

int рrintf ("управляющая строка", аргумент _ 1, аргумент _ 2,...);

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

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

% [признаки] [ширина_поля] [точность] [ F | N | h | l | L ] c _ n

Все параметры в квадратных скобках не являются обязательными. На месте параметра c_n (символ преобразования) могут быть записаны:

с - значением аргумента является символ;

d или i - значением аргумента является десятичное целое число;

е - значением аргумента является вещественное десятичное число в экспоненциальной форме вида 1.23 e +2;

Е - значением аргумента является вещественное десятичное число в экспоненциальной форме вида 1.23 E +2;

f - значением аргумента является вещественное десятичное число с плавающей точкой;

g (или G) - используется, как е или f, и исключает вывод незначащих нулей;

о - значением аргумента является восьмеричное целое число;

s - значением аргумента является строка символов (символы строки выводятся до тех пор, пока не встретится символ конца строки или же не будет, выведено число символов, заданное точностью);

u - значением аргумента является беззнаковое целое число;

х - значением аргумента является шестнадцатеричное целое число с цифрами 0,..., 9, а, b, с, d, е, f;

X - значением аргумента является шестнадцатеричное целое число с цифрами 0,..., 9, А, В, С, О, Е, F;

р - значением аргумента является указатель;

n - применяется в операциях форматирования. Аргумент, соответствующий этому символу спецификации, должен быть указателем на целое. В него возвращается номер позиции строки (отображаемой на экране), в которой записана спецификация %n.

Необязательные параметры в спецификации преобразования:

· признак минус (-) указывает, что преобразованный параметр должен быть выравнен влево в своем поле;

· признак плюс (+) требует вывода результата со знаком;

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

· точка (.), отделяющая размер поля от последующей строки цифр;

· строка цифр, задающая максимальное число выводимых символов или же количество цифр, выводимых справа от десятичной точки в значениях типов float или double (точность);

· символ F, определяющий указатель типа far;

· символ N, определяющий указатель типа near;

· символ h, определяющий аргумент типа short int (используется вместе с символами преобразования d, i, о, u, х, Х);

· символ l, указывающий, что соответствующий аргумент имеет тип long (в случае символов преобразования d, i, о, u, х, X) или double (в случае символов преобразования е, Е, f, g, G);

· символ L, указывающий, что соответствующий аргумент имеет тип long doubl e (используется вместе с символами преобразований е, Е, f, g, G);

· символ #, который может встречаться перед символами преобразования g, f, е и перед символом х. В первом случае всегда будет выводиться десятичная точка, а во втором - префикс 0 x перед соответствующим шестнадцатеричным числом.

Если после знака % записан не символ преобразования, то он выводится на экран. Таким образом, строка %%приводит к выводу на экран знака %.

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

При наличии ошибок, например, в числе аргументов или типе преобразования результаты будут неверными.

Среди управляющих символьных констант наиболее часто используются следующие:

\ а - для кратковременной подачи звукового сигнала;

\ b - для перевода курсора влево на одну позицию;

\ f - для подачи формата;

\ n - для перехода на новую строку;

\ r - для возврата каретки;

\ t - горизонтальная табуляция;

\ v - вертикальная табуляция;

\\ - вывод символа \;

\' - вывод символа ';

\" - вывод символа ";

\? - вывод символа?.

Например, в результате вызова функции:

printf("\tЭBM\n%d\n", i);

сначала выполняется горизонтальная табуляция (\ t), т.е. курсор сместится от края экрана, затем на экран будет выведено слово ЭВМ, после этого курсор переместится в начало следующей строки (\ n), затем будет выведено целое число i по формату %d (десятичное целое), и окончательно курсор перейдет в начало новой строки (\n).

Напечатать строку символов можно и так:

printf("Это строка символов");





Дата публикования: 2014-11-18; Прочитано: 405 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2025 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.045 с)...