Спецификация преобразования
Синтаксис спецификатора преобразования имеет такой вид:
%[флаги] [поле][.точность][размер]символ типа
Обязательными элементами спецификатора являются только начальный знак процента и символ, задающий тип преобразования. Следующая таблица перечисляет возможные варианты различных элементов спецификации.
Таблица.2. Элементы спецификатора преобразования
Элемент
| Символ
| Аргумент
| Описание
|
флаг
| -
|
| Выровнять вывод по левому краю поля.
|
|
|
| Заполнить свободные позиции нулями вместо пробелов.
|
| +
|
| Всегда выводить знак числа.
|
| пробел
|
| Вывести пробел на месте знака, если число положительное.
|
| #
|
| Вывести 0 перед восьмеричным или Ох перед шестнадцатеричным значением.
|
поле
| число
|
| Минимальная ширина поля вывода.
|
точность
| число
|
| Для строк — максимальное число выводимых символов; для целых — минимальное число выводимых цифр; для вещественных — число цифр дробной части.
|
размер
| h
|
| Аргумент -- короткое целое.
|
|
|
| Аргумент — длинное целое.
|
| L
|
| Аргумент имеет тип long double.
|
Элемент
| Символ
| Аргумент
| Описание
|
символ типа
| d
| целое
| Форматировать как десятичное целое со знаком.
|
| i
| целое
| То же, что и d.
|
| о
| целое
| Форматировать как восьмеричное без знака.
|
| U
| целое
| Форматировать как десятичное без знака.
|
| х
| целое
| Форматировать как шестнадцатеричное в нижнем регистре.
|
| Х
| целое
| Форматировать как шестнадцатеричное в верхнем регистре.
|
| f
| вещественное
| Вещественное в форме [-]dddd.dddd.
|
| е
| вещественное
| Вещественное в форме [-]d.dddde[+|-]dd.
|
| Е
| вещественное
| То же, что и е, с заменой е на Е.
|
| g
| вещественное
| Использовать форму f или е в зависимости от величины числа и ширины поля.
|
| G
| вещественное
| То же, что и g — но форма f или Е.
|
| с
| символ
| Вывести одиночный символ.
|
| s
| строка
| Вывести строку
|
| р
| указатель
| Вывести указатель в виде шестнадцатеричного числа ХХХХХХХХ.
|
Как видите, флаги задают “стиль” представления чисел на выводе, поле и точность определяют характеристики поля, отведенного под вывод аргумента, размер уточняет тип аргумента и символ_типа задает собственно тип преобразования.
Escape-последовательности
В строках языка С для представления специальных (например, непечатаемых) символов используются escape-последователъности, состоящие из обратной дробной черты, за которой следует один или несколько символов. (Название появилось по аналогии с командами управления терминалом или принтером, которые действительно представляли собой последовательности переменной длины, начинающиеся с кода ESC.) В приведенных примерах функции printf () вы уже встречались с одной такой последовательностью — \n. Сама обратная косая черта называется escape-символом..
В таблице 3 перечислены возможные esc-последовательности.
Таблица 3. Escape-последовательности языка С
Последовательность
| Название
| Описание
|
\а
| Звонок
| Подает звуковой сигнал.
|
\b
| Возврат на шаг
| Возврат курсора на одну позицию назад.
|
\f
| Перевод страницы
| Начинает новую страницу.
|
\n
| Перевод строки
| Начинает новую строку.
|
\r
| Возврат каретки
| Возврат курсора к началу текущей строки.
|
\t
| Табуляция
| Переход к следующей позиции табуляции.
|
\v
| Вертикальная табуляция
| Переход на несколько строк вниз.
|
\\
|
| Выводит обратную дробную черту.
|
\'
|
| Выводит апостроф (одинарную кавычку).
|
\"
|
| Выводит кавычку (двойную).
|
Кроме того, esc-последовательности могут представлять символы в ASCII-коде — в восьмеричном или шестнадцатеричном формате:
\000
| От одной до трех восьмеричных цифр после esc-символа.
|
\хНН или \ХНН
| Одна или две шестнадцатеричных цифры после esc-символа.
|
Читайте также:
Воспользуйтесь поиском по сайту: