Спецификации
Управляющие последовательности
Стандартные функции форматированного ввода и вывода
Для использования этих функций в начало программы нужно поставить директиву препроцессора #include <stdio.h>.Она включает содержимое файла в текст программы. Этот файл содержит описание стандартных типов и функций для работы со стандартными файлами.
Форматный вывод – функция PRINTF().
Эта функция предназначена для форматного вывода данных в стандартный файл вывода. Обычный стандартный файл вывода связан с экраном дисплея, но этот файл можно связать с любым другим устройством вывода. В результате вывод стандартного файла означает вывод данных на соответствующее устройство. Стандартный файл вывода по структуре является текстовым файлом, т.е. представляет собой последовательность строк символов. Функция printfимеет вид:
Int printf(форматная строка,[список элементов ввода])
Первый параметр этой функции имеет тип: char *форматная строка. Она выводит значения аргументов в соответствии с заданной форматной строкой.
Строка формата определяет, какой вид должны иметь выводимые данные. Строка содержит следующие компоненты:
- Текстовые строки (отображаются в таком виде, в каком стоят в строке формата);
- Управляющие последовательности(специальные символы, предназначенные для управления выводом);
- Спецификации вывода состоят из знака % и символа.
Последовательность | Значение |
a | Звуковой сигнал |
Возврат на 1 символ назад | |
f | Прогон страницы |
Перевод строки | |
Возврат каретки | |
Горизонтальная табуляция | |
v | Вертикальная табуляция |
\ | Обратная косая черта |
? | Знак вопроса |
’ | Одинарная кавычка |
” | Двойная кавычка |
Строка формата должна содержать по одной спецификации вывода для каждой выводимой переменной. Функция printf() отображает значение каждой переменной в таком виде, какой указан соответствующей спецификацией.
Спецификация | Тип переменной |
%c | Char |
%d | Int, Short |
%ld | Long |
%f | Float, Double |
%s | Массивы типа Char(строки символов) |
%u | Unsigned Int, Unsigned Short |
%lu | Unsigned Long |
Все элементы строки формата, не являющиеся спецификациями или управляющими последовательностями, воспроизводятся так, как текстовые строки и отображаются так, как написаны, включая пробелы.
В одной строке можно вывести любое количество значений переменных, но строка формата обязательно должна содержать по одной спецификации для каждого значения.
Printf(“a=%f, b=%d”,a,b);
Printf(“%d”, x+y);
Между аргументами и спецификациями устанавливается взаимнооднозначное соответствие в порядке их следования слева на право.
Любая спецификация в форматной строке имеет следующий общий вид:
% [выравнивание] [ширина (или * )] [ дополнительные признаки] символ преобразования
Выравнивание при выводе значения осуществляется в право по умолчанию, т.е. если под выводимое значение отводится большее число позиций чем нужно, то лишние позиции слева заполняются пробелами. Если место символа выравнивания поставить « - »то выравнивание будет осуществляться влево (т.е. значения будут прижиматься к левой границе).
Ширина определяет количество позиций, необходимых при выводе значения, если она отсутствует, то под значение будет отводиться стандартное число позиций. Если *, то количество позиций будет соответствовать выводимому значению.