Скачиваний:
3
Добавлен:
03.01.2024
Размер:
1.18 Mб
Скачать

Справочно: Форматированный вывод данных. Функция printf( )

Функция printf( ) (прототип содержится в файле stdio.h) обеспечивает форматированный вывод.

Ее можно записать в следующем формальном виде:

рrintf ("управляющая строка", аргумент _1, аргумент _2,...);

Управляющая строка содержит компоненты трех типов:

1) обычные символы, которые просто копируются в стандартный выходной поток (выводятся на экран дисплея);

2) спецификации преобразования, каждая из которых вызывает вывод на экран очередного аргумента из последующего списка;

3) управляющие символьные константы.

Каждая спецификация преобразования начинается со знака % и заканчивается некоторым символом, задающим преобразование.

Между знаком % и символом преобразования могут встречаться другие знаки в соответствии со следующим форматом:

% [признаки] [ширина_поля] [точность] [F|N|h|l|L] c_n

Все параметры в квадратных скобках не являются обязательными.

На месте параметра c_n (символ преобразования) могут быть записаны:

с - значением аргумента является символ;

d или i - значением аргумента является десятичное целое число;

е - значением аргумента является вещественное десятичное число в экспоненциальной форме вида 1.23e+2;

Е - значением аргумента является вещественное десятичное число в экспоненциальной форме вида 1.23E+2;

f - значением аргумента является вещественное десятичное число с плавающей точкой;

g (или G) - используется, как е или f, и исключает вывод незначащих нулей;

о - значением аргумента является восьмеричное целое число; s - значением аргумента является строка символов (символы

строки выводятся до тех пор, пока не встретится символ конца строки или же не будет, выведено число символов, заданное точностью);

u - значением аргумента является беззнаковое целое число; х - значением аргумента является шестнадцатеричное целое

число с цифрами 0,..., 9, а, b, с, d, е, f;

X - значением аргумента является шестнадцатеричное целое число с цифрами 0,..., 9, А, В, С, О, Е, F;

р - значением аргумента является указатель;

n - применяется в операциях форматирования. Аргумент, соответствующий этому символу спецификации, должен быть указателем на целое. В него возвращается номер позиции строки (отображаемой на экране), в которой записана спецификация %n.

21

Справочно: Форматированный ввод данных. Функция scanf( )

 

Функция scanf( ) (прототип содержится в файле stdio.h)

f - на входе ожидается вещественное число с плавающей

обеспечивает форматированный ввод.

точкой;

g или G - на входе ожидается вещественное число с

 

Ее можно записать в следующем формальном виде:

 

плавающей точкой;

 

scanf("управляющая строка", аргумент_1, аргумент_2,...);

о - на входе ожидается восьмеричное целое число и аргумент

 

является указателем на переменную типа int;

 

 

О - на входе ожидается восьмеричное целое число и аргумент

 

Аргументы scanf( ) должны быть указателями на соответствующие

является указателем на переменную типа long;

значения.

s - на входе ожидается появление строки символов;

х - на входе ожидается шестнадцатеричное целое число и

 

Для этого перед именем переменной записывается символ &.

 

аргумент является указателем на переменную типа int;

Назначение указателей будет рассмотрено далее.

Х - на входе ожидается шестнадцатеричное целое число и

 

Управляющая строка содержит спецификации преобразования и

аргумент является указателем на переменную типа long;

используется для установления количества и типов аргументов. В нее

р - на входе ожидается появление указателя в виде

могут включаться:

шестнадцатеричного числа;

 

пробелы, символы табуляции и перехода на новую строку (все они

n - применяется в операциях форматирования. Аргумент,

 

игнорируются);

соответствующий этому символу спецификации, должен быть

 

указателем на целое. В него возвращается номер позиции (после

спецификации преобразования, состоящие из знака %, возможно,

ввода), в которой записана спецификация %n;

 

символа * (запрещение присваивания), возможно, числа,

 

u - на входе ожидается беззнаковое целое число и аргумент

 

задающего максимальный размер поля, и самого символа

является указателем на переменную типа unsigned int;

 

преобразования;

U - на входе ожидается беззнаковое целое число и аргумент

обычные символы, кроме % (считается, что они должны совпадать

является указателем на переменную типа unsigned long;

 

с очередными неизвестными символами во входном потоке).

[ ] - сканирует входную строку для получения символов.

 

 

Перед некоторыми символами преобразования могут

 

Рассмотрим символы преобразования функции scanf( )

записываться следующие модификаторы:

 

F - изменяет указатель, заданный по умолчанию, на указатель

(указываются после символа %):

типа far;

 

с - на входе ожидается появление одиночного символа;

 

N - изменяет указатель, заданный по умолчанию, на указатель

 

d или i - на входе ожидается десятичное целое число и аргумент

типа near;

является указателем на переменную типа int;

h - преобразует аргумент к типу short int (может записываться

 

D или l - на входе ожидается десятичное целое число и аргумент

перед символами d, i, о, u, х);

является указателем на переменную типа long;

l - преобразует аргумент к типу long int (может записываться

 

е или Е - на входе ожидается вещественное число с плавающей

перед символами d, i, o, u, x);

точкой;

L - преобразует аргумент к типу long double (может записываться

перед символами е, f, g).

 

 

22

 

 

23

Соседние файлы в папке Лекции