Руководство полного чайника по программированию на языке Си

       

ОПЕРАТОР ВЫВОДА (ПЕЧАТИ)


printf("текст");

Печатает на экран текст.

printf("текст\n");

Печатает на экран текст и переходит к новой строке.

printf("слово1 слово2 "); printf("слово3\n");

печатает

слово1 слово2 слово3 и переходит на новую строку.

Если переход на новую строку не задан явно, символом \n, то текст продолжает печататься в текущей строке.

printf("%d", x);

Печатает в текстовом виде ЗНАЧЕНИЕ переменной x. Специальная конструкция %d означает "взять переменную из списка после запятой и напечатать ее значение в ивде целого числа".

printf("икс равен %d - ого-го\n", x);

Печатает сначала текст

икс равен

затем значение переменной x как целое число, затем текст - ого-го

и переходит на новую строку (поскольку указан символ \n).

Этот оператор может печатать и несколько значений переменных:

int x, y;

x = 12; y = 15; printf("икс есть %d, игрек есть %d, все.\n", x, y); ~~~~~~

Данный оператор работает так. Строка "икс есть %d, игрек есть %d\n" называется ФОРМАТОМ. Компьютер читает формат слева направо и печатает текст до тех пор, пока не встретит символ %d. Курсор изображен символом _

икс есть _

Далее он берет ПЕРВУЮ переменную из списка ~~~~ и печатает ее как целое число.

икс есть 12_

далее он снова печатает текст пока не встретит %d

икс есть 12, игрек есть _

Теперь он берет ВТОРУЮ переменную из списка и печатает ее:

икс есть 12, игрек есть 15_

Снова печатает текст, включая перевод строки \n. Как только строка формата кончилась, оператор printf завершен.

икс есть 12, игрек есть 15, все. _

Печатать можно не только значения переменных, но и значения арифметических выражений:

printf("равно: %d\n", 12 + 3 * 5);

Контрольный вопрос, что печатается:

int x, y, z;

x = 13; y = 23; z = 34;

printf("x=%d xx=%d\nzzz=%d\n", x, y - 1, z * 2 + 1);

Тут в формате есть ДВА перевода строки, поэтому будет напечатано:

x=13 xx=22 zzz=69 _

Заметьте, что перед тем как быть напечатанными, выражения в списке после формата ВЫЧИСЛЯЮТСЯ.

Что напечатает

printf("x=%d\n y=%d\n", x, y);

x=13 y=23 _

Пробел перед y возник потому, что он СОДЕРЖИТСЯ в строке формата после символа \n !!! Будьте внимательны.



Содержание раздела