|
Программирование >> Элементы языков с и с++
е - то же, что и е, но с е для экспоненты; 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, а в списке аргументов перед соответствующим аргументом как отдельный аргумент (через запятую). Примечание ) Аргумент, для которого указывается спецификация точности, может быть только вещественного типа.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |