Форматированный вывод на экран

Оператор вызова функции printf () имеет следующую структуру:

printf(форматная_строка, список_аргументов);

Форматная строка ограничена двойными кавычками (т.е. является текстовой константой) и может включать в себя произвольный текст, управляющие символы и спецификаторы формата. Список аргументов может отсутствовать или же состоять из выражений, значения которых выводятся на экран (в частном случае из констант и переменных).

В примере 1 оператор printf ("\na="); содержит текст ("а=") и управляющие символы ("\n"). Текст выводится на экран в том виде, в котором он записан. Управляющие символы влияют на расположение на экране выводимых знаков.

В результате выполнения этого оператора на экран с новой строки выведутся символы а=.

Признаком управляющего символа является значок \. Ниже приводится их список:

\n – перевод строки;

\t – горизонтальная табуляция;

\r – возврат курсора к началу новой строки;

\а – сигнал-звонок;

\b – возврат на один символ (одну позицию);

\f – перевод (прогон) страницы;

\v — вертикальная табуляция.

Оператор printf (“\nПлощадь треугольника = %f ”, s) ; содержит все виды параметров функции printf.

Список аргументов состоит из одной переменной s. Ее значение выводится на экран. Пара символов %f является спецификацией формата выводимого значения переменной s. Значок % — признак формата, а буква f указывает на то, что выводимое число имеет вещественный (плавающий) тип и выводится на экран в форме с фиксированной точкой. Например, если в результате вычислений переменная s получит значение 32,435621, то на экран выведется:

Площадь треугольника=32.435621

Спецификатор формата определяет форму внешнего представления выводимой величины. Вот некоторые спецификаторы формата:

%с — символ;

%s — строка;

%d — целое десятичное число (тип int);

%u — целое десятичное число без знака (тип unsigned);

%f — вещественные числа в форме с фиксированной точкой;

%е— вещественные числа в форме с плавающей точкой (с мантиссой и порядком).

Например, после выполнения следующих операторов

float m,p;

int k;

m=84.3; k=-12; p=32.15;

printf ("\nm=%f\tk=%d\tp=%e",m,k,p) ;

на экран выведется строка:

m=84.299999 k=-12 p=3.21500e+01

Здесь дважды используемый управляющий символ табуляции \t отделил друг от друга выводимые значения. Из этого примера видно, что соответствие между спецификаторами формата и элементами списка аргументов устанавливается в порядке их записи слева направо.

К спецификатору формата могут быть добавлены числовые параметры: ширина поля и точность. Ширина — это число позиций, отводимых на экране под величину, а точность — число позиций под дробную часть (после точки). Параметры записываются между значком % и символом формата и отделяются друг от друга точкой.

Внесем изменения в оператор вывода для рассмотренного выше примера.

printf (“\nm=%5.2f\tk=%5d\tp=%8.2e\tp=%11.4e”,m,k,p,p) ;

В результате на экране получим:

m=84.30 k= -12 р = 32.15 р = 3.2150е+01

Если в пределы указанной ширины поля выводимое значение не помещается, то этот параметр игнорируется и величина будет выводиться полностью.

К спецификаторам формата могут быть добавлены модификаторы в следующих вариантах:

%ld — выводlong int;

%hu — выводshort unsigned;

%Lf — выводlong double.

Пример

#include

#include

Main()

{

char * msg="Целыми форматами являются:";

int number=10;

double num=345.2356;

printf("%s Hex: 0%x, Decimal:%d, Octal: %o\n",

Рандомно подобранные статьи с сайта:

BP1-1-6-6 Форматированный вывод


Похожие статьи:

  • Оператор вывода

    Оператор вызова функции printf () имеет следующую структуру: printf(форматная_строка, список_аргументов); Форматная строка ограничена двойными кавычками…

  • Стандартные функции ввода/вывода данных языка си

    Для вывода как мы уже знаем используется стандартная функция printf(); Вот её формат: printf( формат-строка , данные для вывода); Для её использования…

  • Форматированный вывод данных

    Функция printf() (прототип содержится в файле stdio.h) обеспечивает форматированный вывод. Ее можно записать в следующем формальном виде: рrintf ( ,…

admin