Функция printf
В общем виде инструкция вызова функции printf выглядит так:
printf(УправляющаяСтрока, СписокПеременных)
Параметр УправляющаяСтрока задает способ отображения (формат) значений переменных, имена которых задает параметр список переменных. Помимо спецификаторов формата, параметр УправляющаяСтрока может содержать символы и управляющие последовательности.
Параметр Списокпеременных не является обязательным и представляет собой последовательность разделенных запятыми имен переменных, значения которых должны быть выведены.
Спецификатор формата задает вид вывода. Например, значение переменной типа float можно вывести как десятичное число с точкой (%f) или как число в формате с плавающей точкой (%е). В спецификаторе формата можно задать размер поля вывода (количество позиций экрана), а для формата f – размер поля для вывода целой и дробной частей числа. Если во время работы программы окажется, что выводимое значение не умещается в поле, указанном в спецификации, то для его вывода будет использовано столько позиций, сколько необходимо.
В табл. 7.1 приведены наиболее часто используемые спецификаторы формата. Необязательный параметр n, вместо которого надо подставить десятичное число, задает размер поля вывода; параметр m – размер поля для вывода цифр дробной части.
Таблица 7.1. Спецификаторы формата.
Спецификатор | Тип переменной | Форма вывода |
---|---|---|
%nd | int | Десятичное со знаком |
%n.mf | float или double | Дробное с десятичной точкой |
%ne | float или double | Дробное в виде числа с плавающей точкой |
%nc | char | Символ |
%ns | Строка |
При выводе одной инструкцией значений нескольких переменных значение первой переменной выводится в соответствии с первым по порядку спецификатором формата из управляющей строки, второй со вторым и т. д.
Следует обратить внимание на то, что компилятор не проверяет, соответствует ли количество переменных, значения которых должны быть выведены, количеству спецификаторов в управляющей строке, а также соответствие типа переменной – спецификатору. Например, если переменная х объявлена как float, то в инструкции printf ("x=%i", x) компилятор не обнаружит ошибку.
Если надо вывести символ, который не может быть помещен в строку вывода обычным образом путем набора на клавиатуре, – например, символ новой строки или двойная кавычка, которая в языке C/C++ используется для ограничения в тексте программы строк, – то вместо этого символа применяется специальная последовательность символов. Специальная (управляющая) последовательность начинается символом обратной наклонной черты. Во время работы программы символы специальной последовательности на экран не выводятся, а выполняется действие, обозначаемое этой последовательностью. В табл. 7.2 приведены наиболее часто используемые управляющие последовательности.
Таблица 7.2. Управляющие последовательности.
Последовательность | Действие |
---|---|
\n | Переводит курсор в начало следующей строки |
\r | Переводит курсор на следующую строку текущей колонки |
\t | Переводит курсор в следующую позицию табуляции |
\ | Выводит двойную кавычку |
\\ | Выводит обратную наклонную черту |
\0x ШестнадцатеричноеЧисло | Выводит символ, код которого указан |