Функции printf и scanf

Формат функции ввода scanf и функции вывода printf сходен:

            printf (форматная строка, арг1, арг2, …);

            scanf (форматная строка, адрес_арг1, адрес_арг2, …);

Первым аргументом в них является управляющая строка (форматная строка), далее через запятую идут переменные (арг1, арг2, … и т.д.), либо их адреса  (в случае scanf).

Предположим, что Вам необходимо вывести значение переменной t в десятичной системе счисления, отведя для этого поле из 4 знакомест. Это выполняется следующим фрагментом программы:

            printf ( «%4d», t);

Форматная строка здесь — «%4d». Символ % — начало спецификации формата, число 4 — количество знакомест, отводимых для печати, символ d — признак того, что число целого типа должно быть выведено в десятичной системе счисления. В форматной строке могут встретиться какие угодно символы. Если строка передается функции printf, все символы, не определяющие спецификацию формата, будут напечатаны.

То есть, если бы строка выглядела так:

«I know, that t = %4d \n»

то на печать было бы выведено сообщение:

                        I know, that t =

затем в четырех знакоместах с выравниванием по правой границе — число, являющееся значением переменной t, и затем переведена строка.

О символе \n следует сказать особо. Это — так называемый специальный символ, символ перевода строки. Таких специальных символов (они называются Esc-последовательностями) несколько, они начинаются с \ (см. Приложение 1).

Одним вызовом функции printf может быть напечатано много значений переменных — в форматной строке может быть много спецификаций формата. Но нельзя забывать, что каждой из них должен соответствовать один аргумент из списка, помещаемого сразу за форматной строкой. Если спецификаций меньше, чем параметров, то часть параметров выводиться не будет. К началу формата возврата нет (как это возможно в других языках).

Рассмотрим подробнее спецификации формата:

            %[-][fw][.][pp]d

где квадратные скобки [] обозначают необязательную часть, которая может отсутствовать; % — символ, с которого всегда начинается форматная строка; [-] — знак «минус» означает, что поле должно быть выравнено влево, по умолчанию оно выравнивается вправо; [fw] — число позиций поля вывода; [.] — для формата с плавающей запятой или для строкового формата; [pp] — число символов после запятой, для строки — это минимальной количество выводимых символов; d — символ преобразования, определяет вывод данных типа int в десятичном формате со знаком.

                        Символы преобразования:

                        d —       целое десятичное число;

                        u —        целое число без знака;

                        p —        значение указателя;

                        f —        число с плавающей точкой;

                        e —        число с плавающей точкой в экспоненциальном формате;

                        c —        символ;

                        s —        строка;

Ссылка на основную публикацию
Adblock detector