
- •3.2.4. Алфавит языка c, идентификаторы, ключевые слова, комментарии
- •3.2.5. Константы в c
- •3.2.6. Типы переменных в языке c и их объявление
- •3.2.7. Объявление простых переменных
- •3.2.8. Арифметические операторы и операторы присваивания
- •3.2.9. Преобразования типов
- •3.2.10. Операции отношения и логические операции
- •3.2.11. Условная операция
- •3.2.12. Стандартная библиотека языка c
- •3.2.13. Математические функции c
- •3.2.14. Форматированный вывод данных в c
- •3.2.15. Структура программы на языке c
3.2.14. Форматированный вывод данных в c
Функции ввода-вывода определены в головном файле stdio.h.
Функция форматированного вывода printf() стандартной библиотеки C формирует и выводит задаваемые аргументами значения на дисплей как символьные строки. Функция имеет переменное число аргументов и вызывается следующим образом:
printf("строка-формата" [, аргумент-1 [, аргумент-2,...]]);
где строка-формата – символьная строка, определяющая вид (формат) выводимых данных. Эта строка состоит из обычных символов, специальных символов и, если за строкой формата следует один или несколько аргументов, спецификаций полей формата вывода (по одному для каждого аргумента).
Простая спецификация формата содержит только символ "%" и символ выводимого типа. Основные символы типов приведены в табл. 3.2.8.
Табл. 3.2.8. Основные символы типов в спецификациях формата языка C
Сим-вол типа |
Тип аргумента |
Вид печати |
d |
int |
Десятичное целое число. |
i |
int signed |
Десятичное целое число со знаком. |
u |
int unsigned |
Десятичное целое число без знака. |
o |
int |
Восьмеричное число без знака (без 0 в начале числа). |
x, X |
int |
Шестнадцатеричное число без знака (без 0x или 0X в начале числа). |
c |
int или char |
Единичный символ после преобразования в unsigned char. |
s |
char * |
Строка символов. |
f |
float или double |
Десятичное число с точкой и со знаком "-" (если число отрицательное). |
e, E |
float или double |
Десятичное число в экспоненциальной форме (целая часть, дробная часть и, после e или E показатель степени со знаком). |
g, G |
float; double |
В зависимости от величины и точности числа выводится либо по типу f, либо по типам e или E. |
% |
% |
Выводится символ "%". |
Если число спецификаций формата больше числа аргументов, излишние спецификации игнорируются. В обратном случае результат вывода не определен.
Функция printf() возвращает целое число типа int – количество выведенных символов или отрицательное значение, если возникла ошибка ввода-вывода, однако, как правило, возвращаемое значение этой функции не используется.
Примеры вывода с использованием функции printf():
1. printf("\nВведите x:");
Будет выведено:
Введите x:
2. printf("\nx=%d y=%f z=%e", x, y, z);
Если значения x=5, y=0,8 и z=-0,5, будет выведено:
x=5 y=0.8 z=-0.5e+00
3. printf("\nЗадач: %d\nИз них правильно решено: %d (%f%%)",
total,right_answered,(float)right_answered*100/total);
Если значения total=12, right_answered=4, будет выведено:
Задач: 12
Из них правильно решено: 4 (33.333333%)
4. int outerror;
outerror = printf("\nsum=%d", sum);
if(outerror < 0) /* Если ошибка при выводе sum, */
return 1; /* выход из программы */