Программирование >>  Элементы языков с и с++ 

1 ... 64 65 66 [ 67 ] 68 69 70 ... 200


е - то же, что и е, но с е для экспоненты;

f - аргумент рассматривается как переменная типа float или double и преобразуется в десятичную форму в виде [-]mmm.nnnnnn, где длина строки из п определяется указанной точностью. По умолчанию точность равна 6;

g- используется либо формат %е, либо %f: выберется тот формат, который даст изображение числа меньшим количеством знаков с учетом заданной точности. Незначащие нули не печатаются;

g - то же, что и д, но с е для экспоненты, если используется формат е;

п - указатель на целое со знаком;

р - входной аргумент выводится как указатель. Формат зависит от модели используемой памяти. Он может быть вида xxxx:YYYY или YYYY (только смещение).

Форматы вывода задаются так: любой формат начинается с символа и заканчивается одним из символов форматирования:

d - аргумент преобразуется к десятичному виду (с учетом знака);

i - аргумент преобразуется к десятичному виду (с учетом знака);

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

X - аргумент преобразуется в беззнаковую шестнадцатеричную форму (с символами а, ь, с, d, е, f);

x - аргумент преобразуется в беззнаковую шестнадцатеричную форму (с символами а, в, с, d, е, f);

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

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

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

е - аргумент рассматривается как переменная типа float или double и преобразуется в десятичную форму в экспонентном виде [-Jm.nnnnnn е[+-]хх, где длина строки из п определяется указанной точностью. По умолчанию точность равна 6;



( Примечание

Если заданы и пробел, и знак + . то преимущество имеет знак + .

спецификатор ширины определяет размер поля для выходного значения. Ширину можно задать двумя способами:

О напрямую - строкой десятичных цифр;

О косвенно - через символ * (в этом случае аргумент должен иметь тип int). Если для задания ширины используется символ *

Между границами формата вывода находятся:

[флажки] [ширина] [.точность] [FINhlL].

Квадратные скобки означают, что элемент, входящий в них, может отсутствовать для какого-то формата. Например, если выводится десятичное число, то точность для него не имеет смысла;

флажки определяют выравнивание выводимого значения (по правому или по левому краю поля вывода), знаки числа, десятичные точки, конечные нули, восьмеричные и шестнадцатеричные префиксы. Флажки имеют следующий смысл:

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

О + - преобразование результата к виду со знаком: результат всегда начинается со знака + или

О пробел- если значение неотрицательное, то вместо плюса выводится пробел. Для отрицательных чисел выводится минус;

О # - указывает, что аргумент должен быть преобразован с использованием альтернативной формы. Это означает, что если флажок # используется вместе с символом преобразования (форматирования), то при преобразовании аргумента для символов с, S, d, U, i, о, X, X символ # не влияет на результат. Для символов е, е, f результат, всегда будет содержать десятичную точку, даже если за точкой не следует никаких цифр (обычно десятичная точка появляется, если за ней следует цифра). Для символов д, с результат будет как для символов е, е, но с тем отличием, что хвостовые нули не будут удаляться.



204 Глава 5 \

(звездочка), то спецификация ширины указывается не в строке Control, а в списке аргументов перед соответствующим аргументом.

Спецификаторы ширины:

О п - в этом случае выведется не менее п символов. Если в выво-] димом числе символов меньше, чем п, то оставшаяся часть поли заполнится пробелами справа (если задан флажок), и слева -в противном случае;

О On (например, 04) - будет выведено не менее п символов. Если в 1 выводимом числе символов меньше, чем п, то оставшаяся часть] поля заполнится слева нулями;

О * (для формата d) - если для задания ширины используется j символ то спецификация ширины указывается не в строке Control, а в списке аргументов перед тем аргументом, для которого она определена. Причем ширина представляет собой отдельный аргумент. Например, выводим число 1=2 по функции printf ( %*d\n , 5, i);. Результат будет пппп2 (где п-пробел). Здесь ширина задана равной 5, и указана в списке аргументов отдельно, но перед тем аргументом, для которого она определена;

спецификатор точности задает число выводимых символов посте точки (дробная часть числа). Задание спецификатора точности всегда начинается со знака точки (чтобы отделить его от спецификатора ширины). Как и спецификатор ширины, точность может задаваться двумя способами:

О напрямую: заданием числа;

О косвенно: указанием символа *. Если вы исп(2льзуете * для спе-1 цификатора точности, то спецификация точности должна указываться не в строке Control, а в списке аргументов перед соответствующим аргументом как отдельный аргумент (через запятую).

Примечание )

Аргумент, для которого указывается спецификация точности, может быть только вещественного типа.



1 ... 64 65 66 [ 67 ] 68 69 70 ... 200

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика