Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Форматный вывод - функция PRINTF





 

Две функции: PRINTF для вывода и SCANF для ввода (следу-

ющий раздел) позволяют преобразовывать численные величины в

символьное представлEние и обратно. Они также позволяют ге-

нерировать и интерпретировать форматные строки. Мы уже всюду

в предыдущих главах неформально использовали функцию PRINTF;

здесь приводится более полное и точное описание. Функция

 

PRINTF(CONTROL, ARG1, ARG2,...)

 

преобразует, определяет формат и печатает свои аргументы в

стандартный вывод под управлением строки CONTROL. Управляю-

щая строка содержит два типа объектов: обычные символы, ко-

торые просто копируются в выходной поток, и спецификации

преобразований, каждая из которых вызывает преобразование и

печать очередного аргумента PRINTF.

Каждая спецификация преобразования начинается с символа

% и заканчивается символом преобразования. Между % и симво-

лом преобразования могут находиться:

- знак минус, который указывает о выравнивании преобразован-

ного аргумента по левому краю его поля.

- Строка цифр, задающая минимальную ширину поля. Преобразо-

ванное число будет напечатано в поле по крайней мере этой

ширины, а если необходимо, то и в более широком. Если пре-

образованный аргумент имеет меньше символов, чем указанная

ширина поля, то он будет дополнен слева (или справа, если

было указано выравнивание по левому краю)заполняющими сим-

волами до этой ширины. Заполняющим символом обычно являет-

ся пробел, а если ширина поля указывается с лидирующим ну-

лем, то этим символом будет нуль (лидирующий нуль в данном

случае не означает восьмеричной ширины поля).

- Точка, которая отделяет ширину поля от следующей строки

цифр.

- Строка цифр (точность), которая указывает максимальное

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

число печатаемых справа от десятичной точки цифр для пере-

менных типа FLOAT или DOUBLE.

- Модификатор длины L, который указывает, что соответствую-

щий элемент данных имеет тип LONG, а не INT.

Ниже приводятся символы преобразования и их смысл:

 

D - аргумент преобразуется к десятичному виду.

O - Аргумент преобразуется в беззнаковую восьмеричную форму

(без лидирующего нуля).

X - Аргумент преобразуется в беззнаковую шестнадцатеричную

форму (без лидирующих 0X).

U - Аргумент преобразуется в беззнаковую десятичную форму.

C - Аргумент рассматривается как отдельный символ.

S - Аргумент является строкой: символы строки печатаются до

тех пор, пока не будет достигнут нулевой символ или не бу-

дет напечатано количество символов, указанное в специфика-

ции точности.

E - Аргумент, рассматриваемый как переменная типа FLOAT или

DOUBLE, преобразуется в десятичную форму в виде

[-]M.NNNNNNE[+-]XX, где длина строки из N определяется

указанной точностью. Точность по умолчанию равна 6.

F - Аргумент, рассматриваемый как переменная типа FLOAT или

DOUBLE, преобразуется в десятичную форму в виде

[-]MMM.NNNNN, где длина строки из N определяется указанной

точностью. Точность по умолчанию равна 6. отметим, что эта

точность не определяет количество печатаемых в формате F

значащих цифр.

 

G - Используется или формат %E или %F, какой короче; незна-

чащие нули не печатаются.

Если идущий за % символ не является символом преобразования,

то печатается сам этот символ; следовательно,символ % можно

напечатать, указав %%.

Большинство из форматных преобразований очевидно и было

проиллюстрировано в предыдущих главах. Единственным исключе-

нием является то, как точность взаимодействует со строками.

Следующая таблица демонстрирует влияние задания различных

спецификаций на печать "HELLO, WORLD" (12 символов). Мы по-

местили двоеточия вокруг каждого поля для того, чтобы вы

могли видеть его протяженность.

 

:%10S::HELLO, WORLD:

:%10-S::HELLO, WORLD:

:%20S:: HELLO, WORLD:

:%-20S::HELLO, WORLD:

:%20.10S:: HELLO, WOR:

:%-20.10S::HELLO, WOR:

:%.10S::HELLO, WOR:

 

Предостережение: PRINTF использует свой первый аргумент

для определения числа последующих аргументов и их типов. Ес-

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

дут иметь несоответственные типы, то возникнет путаница и вы

получите бессмысленные результаты.

 







Date: 2015-09-17; view: 387; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.019 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию