БлогNot. Переменные аргументы ширины и точности в функции printf - C++ и PHP

Переменные аргументы ширины и точности в функции printf - C++ и PHP

В C++ есть форматный спецификатор "*" (п. 8.6), он применяется, когда следующий аргумент из списка аргументов функции printf должен задавать ширину поля или количество знаков в дробной части при выводе вещественного числа. Простейший пример на C++ мог бы быть таким:

#include <stdio.h>

void main () {
 float f=1.5;
 int w=5,d=2;
 printf ("\n%*.*f",w,d,f);
}

Здесь значение переменной f печатается в 5 позиций с 2 знаками после запятой, но суть дела в том, что эти "5" и "2" задаются переменными, а не константами, а значит, могут быть скорректированы самой программой.

То же самое легко сделать и на PHP, хотя "звёздочки" в формате там нет, вот код:

<pre>
<?php
 $f=1.5;$w=5;$d=2;
 printf ("\n%{$w}.{$d}f",$f);
?>
</pre>

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


теги: числа c++ php форматы

09.12.2011, 21:41; рейтинг: 9323