Программирование на C и C++

Онлайн справочник программиста на C и C++

Вывод чисел

Можно использовать или %d, или %i для отображения знакового десятичного числа. Эти форматы спецификаторов эквивалентны и присутствуют оба по историческим причинам.

Для вывода беззнакового значения надо использовать %u.

Спецификатор формата %f позволяет отображать числа с плавающей точкой.

Спецификаторы %е и %Е сообщают printf() о необходимости вывода вещественного числа в научной нотации. Числа, представляющиеся в научной нотации, имеют следующий вид:

x.ddddd Е+/-yy

Если необходимо вывести символ «E», используйте %Е, иначе используйте %е.

Можно указать функции printf() использовать %f или %е, используя спецификаторы формата %g или %G. В результате этого printf() выбирает спецификатор формата, приводящий к более короткой форме выдачи информации. Если необходимо, чтобы в научной нотации присутствовало «Е», используйте %G, иначе используйте %g. Следующая программа демонстрирует эффект использования спецификатора формата %g:

#include <stdio.h>
int main(void)
{
double f;
for(f=1.0; f<1.0e+10; f=f*10)
printf ("%g", f);
return 0;
}

В результате ее работы получаем:

1 10 100 1000 10000 100000 1e+06 1e+07 1е+08 1е+09

Можно отображать беззнаковые целые в восьмеричном или шестнадцатиричном форматах, используя %о и %х соответственно. Поскольку шестнадцатиричные числа используют буквы от А до F для представления чисел от 10 до 15, следует использовать спецификатор формата %X для вывода прописных букв, а %х - для строчных, как показано ниже:

#include <stdio.h>
int main(void)
{
unsigned num;
for(num=0; num<255; num++)
{
printf("%o ", num);
printf("%x", num);
printf("%X", num);
}
return 0;