Функция printf
В общем виде инструкция вызова функции printf выглядит так:
printf(УправляющаяСтрока, СпмсокПеременных)
Параметр УправляющаяСтрока задает способ отображения (формат) значений переменных, имена которых задает параметр список переменных. Помимо спецификаторов формата, параметр УправляющаяСтрока может содержать символы и управляющие последовательности.
Параметр Списокпеременных не является обязательным и представляет собой последовательность разделенных запятыми имен переменных, значения которых должны быть выведены.
Спецификатор формата задает вид вывода. Например, значение переменной типа float можно вывести как десятичное число с точкой (%f) или как число в формате с плавающей точкой (%е). В спецификаторе формата можно задать размер поля вывода (количество позиций экрана), а для формата f — размер поля для вывода целой и дробной частей числа. Если во время работы программы окажется, что выводимое значение не умещается в поле, указанном в спецификации, то для его вывода будет использовано столько позиций, сколько необходимо.
В табл. 7.1 приведены наиболее часто используемые спецификаторы формата. Необязательный параметр л, вместо которого надо подставить десятичное число, задает размер поля вывода; параметр 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ШестнадцатеричноеЧисло |
Выводит символ, код которого указан |
Для вывода на экран сообщений часто используют функцию puts, которая, в отличие от
printf, после вывода автоматически переводит курсор в начало следующей строки. У функции
puts один параметр — сообщение. В простейшем случае в качестве параметра функции
puts используется строковая константа. Например, функция
puts("У лукоморья дуб зеленый,ХпЗлатая цепь на дубе том.")
выводит две строчки стихотворения, каждую на отдельной строке, и переводит курсор в начало следующей строки.
Чтобы вывести цветной текст, надо использовать функции cprintf и cputs. Они ничем не отличаются от рассмотренных ранее printf и puts, за исключением того, что цвет символов, выводимых этими функциями, можно задать, вызвав функцию textcolor, а цвет фона — textbackground.
В общем виде инструкции вызова указанных выше функций выглядят так:
textcolor(Цвет) ;
textbackground(Цвет) ;
Параметр цвет — параметр целого типа, в качестве которого обычно используют одну из именованных констант (табл. 7.3).
Таблица 7.3. Константы, в качестве параметра цвет
Цвет |
Константа |
Значение константы |
Черный |
BLACK |
0 |
Синий |
BLUE |
1 |
Зеленый |
GREEN |
2 |
Бирюзовый |
CYAN |
3 |
Красный |
RED |
4 |
Сиреневый |
MAGENTA |
5 |
Коричневый |
BROWN |
6 |
Светло-серый |
LIGHTGRAY |
7 |
Серый |
DARKGRAY |
8 |
Голубой |
LIGHTBLUE |
9 |
Светло-зеленый |
LIGHTGREEN |
10 |
Светло-бирюзовый |
LIGHTCYAN |
11 |
Алый |
LIGHTRED |
12 |
Светло-сиреневый |
LIGHTMAGENTA |
13 |
Желтый |
YELLOW |
14 |
Белый (яркий) |
WHITE |
15 |
Следует обратить внимание на то, что в качестве параметра функции textcolor можно использовать символьные константы со значением от О до 15, а в качестве параметра функции
textbackground — только от 0 до 7.
При выводе на экран весьма полезна функция cirscr, которая очищает экран, закрашивая его цветом фона, установленным функцией
textbackground.
Функции textcolor, textbackground, cirscr и приведенные выше константы объявлены в файле
conio.h, поэтому, чтобы они были доступны, в текст
Программы нужно включить директиву
#include <conio.h>.