Специальные символы
Спецификации формата вывода могут быть еще более сложными и содержать дополнительные символы, одним из которых является знак #. Он должен задаваться сразу же за значением ширины поля. Для спецификаций формата беззнаковых целых чисел, включающих коды формата о, х
и X, это приводит к выводу префикса 0, 0х и 0Х соответственно. Поэтому такой фрагмент программы
var
arg:integer = $FF;
printf('В восьмеричной форме, %#o'#$a, [arg]);
приведет к выводу строки:
В восьмеричной форме, 0377
Для вывода вещественных чисел задание знака # приведет к выводу десятичной точки, даже если задано нулевое число знаков после запятой.
В спецификации может также содержаться знак плюса (+) для принудительного вывода символа +
даже для положительных чисел. (Этот символ имеет смысл только для вывода целых чисел со знаком или вещественных чисел.) Знак +
располагается в спецификации на особом месте, следуя сразу же после знака минус, который обозначает выравнивание влево, или после знака процента, если знак минуса отсутствует. Следующие строки кода
var
farg:single=57.88;
printf('Значение farg равно <%-+10.2f>'#$a, [farg]);
приведут к выводу:
Значение farg равно <+57.88>
Обратите внимание на комбинацию символов минус и плюс. Можно также заменить символ +
пробелом. В этом случае процедура printf выведет на месте знака плюс пробел. Это позволяет правильно выравнивать таблицы, содержащие положительные и отрицательные числа.