Д.1. Функція printf()

Функція printf() має наступний прототип:

int printf(const char *fmt_string, …);

Перший аргумент, fmt_string, визначає способ відображення всіх наступних аргументів. Цей аргумент часто називають рядком форматування. Він складається з елементів двох типів: текста та специфікаторів формата. До елементів першого типу відносяться символи (текст), що виводяться на екран. Елементи другого типу (специфікатори формату) містять команди форматування, які визначають спосіб відображення аргументів. Команда форматування починається з символу процента, за котрим вказукється код формата. Специфікатори формата наведені у таблиці Д.2. Кількість аргументів має доаівнювати кількісті команд форматування.

Команди формата можуть мати модифікатори, що задають ширину поля, точність (кількість десятичних розрядів) та признак рівняння по лівому краю. Ціле значення, розміщене між % та командою форматування, виконує роль специфікатора мінімальної ширини поля. Наявність цього специфікатора приведе до того, що результат буде заповнений пробілами чи нулями, щоб гарантовано забезпечити для виводимого значення задану мінімальну довжину. Якщо виводиме значення (рядок чи число) більше цього мінімума, воно буде виведено повністю. По замовченню в якості заповнювача використовується пробіл. Для заповнення нулями необхідно помістити 0 перед специфікатором ширини поля. Наприклад, рядок форматування %0.5d додасть виводиму кільсть нулями (їх буде менше п’яти), щоб загальна довжина дорівнювала п’яти символам.

Таблиця Д.2 – Специфікатори формата функції printf()

Код Формат
Символ
%d Десятичне ціле зі знаком
%i Десятичне ціле зі знаком
%e Експоненціальне представлення (рядкова буква e)
%E Експоненціальне представлення (прописна буква E)
%f Значення з плаваючою точкою
%g Використовує більш короткий із двох форматів: %e чи %f (якщо %e, використовує рядкову букву e)
%G Використовує більш короткий із двох форматів: %E чи %F (якщо %e, використовує рядкову букву E)
%o Восьмирічне ціле без знаку
%s Рядок символ
%u Десятичне ціле без знаку
%x Шістнадцятирічне ціле без знаку (рядкові букви)
%X Шістнадцятирічне ціле без знаку (прописны букви)
%p Покажчик
%n Має бути покажчиком на ціле. Він зберігає в цьому цілому число символів, що виведені до вихідного потоку (до виявлення специфікатора %n)
%% Виводить символ %

Точне значення модифікатора точності залежить від кода формату, до якого він застосовується. Щоб добавити модифікатор точності, поставте за специфікатором ширини поля десятичну крапку, а після неї – значення специфікатора точності. Для форматів a, A, e, E, f та Fмодифікатор точності визначає кількість виводимих десятичних знаків. Наприклад, рядок форматування %10.4f забезпечить виведення числа, ширина якого буде складати не менше десяти символів, із чотирма десятичними знаками. Щодо цілих та рядків, число, яке наступне після крапки, задає максимальну довжину поля. Наприклад, рядок фйорматування %5.7s відобразить рядок довжиною не менше п’яти, але не більш семи символів. Якщо рядок, що виводиться, буде довший за максимальну довжину поля, кінцеві символи будуть відкинуті.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: