
- •1 Основні елементи мови с
- •1.1 Алфавіт мови програмування
- •1.2 Лексеми
- •1.3 Ключові слова
- •1.4 Ідентифікатори
- •1.5 Класифікація типів даних
- •1.6 Літерали
- •1.7 Оператори
- •1.8 Коментарі
- •1.9 Директиви препроцесора
- •1.10 Організація програми
- •2 Операції та вирази
- •2.1 Загальні відомості
- •2.2 Арифметичні операції
- •2.3 Операції приведення типів
- •2.4 Операції присвоєння
- •2.5 Операції інкремента і декремента
- •2.6 Операції порівняння
- •2.7 Операції зсуву
- •2.8 Порозрядні операції
- •2.9 Логічні операції
- •2.10 Операція sizeof
- •2.11 Операція послідовного обчислення
- •2.12 Операція умови (?:)
- •2.13 Адресні операції
- •3 Прості типи даних
- •3.1 Оголошення змінних
- •3.2 Час існування та область видимості змінних
- •3.3 Цілі типи даних
- •3.4 Дійсні типи даних
- •4 Оператори керування
- •4.1 Оператор розгалуження if
- •4.2 Оператор розгалуження if-else
- •4.3 Оператор множинного розгалуження switch
- •4.4 Оператор циклу for
- •4.5 Оператор циклу while
- •4.6 Оператор циклу do while
- •4.7 Оператор break
- •4.8 Оператор continue
- •5 Функції
- •5.1 Основні поняття
- •5.2 Види виклику функцій
- •5.3 Область видимості
- •5.4 Порожній тип void
- •5.5 Передача аргументів у функцію
- •5.6 Рекурсивні функції
- •5.7 Прототипи функцій
- •6 Покажчики
- •6.1 Визначення та ініціалізація покажчиків
- •6.2 Визначення покажчиків
- •6.3 Масиви
- •6.4 Операції порівняння
- •6.5 Копіювання рядка
- •6.6 Покажчики на функцію
- •6.7 Покажчики на void
- •6.8 Арифметика покажчиків
- •7 Масиви
- •7.1 Загальні поняття
- •7.2 Одновимірні масиви
- •7.3 Багатовимірні масиви
- •8 Рядки в с
- •8.1 Рядки
- •8.2.Створення рядків
- •8.3 Прототипи
- •8.3 Функції перетворення буферів
- •8.4 Функції перевірки літер
- •8.5 Операції з рядками
- •9 Структури, об’єднання, перерахування
- •9.1 Структури
- •9.2 Бітові поля
- •9.3 Ключове слово typedef
- •9.4 Об’єднання
- •9.5 Перераховуваний тип
- •10 Введення та виведення даних
- •10.1 Функція виведення printf
- •10.2Функція введення scanf
- •10.3 Введення та виведення у файл
- •11 Динамічне виділення пам'яті
10 Введення та виведення даних
10.1 Функція виведення printf
Функція printf забезпечує виведення на екран монітору повідомлень і значень змінних. Для використання функції printf потрібно підключити бібліотеку <stdio.h>. Синтаксис printf:
int printf(стрічка форматування, змінна1, змінна2, ...);
Функція printf може складатися з одного чи декількох параметрів. Першим параметром є стрічка форматування, іншими параметрами можуть бути змінні чи вирази значення яких необхідно вивести на екран. Стрічка форматування записується в подвійних лапках і може містити такі елементи: символи які потрібно вивести на екран, керуючі послідовності та специфікатори перетворення (табл. 10.1).
Таблиця 10.1 – Специфікатори перетворення для функції printf
Специфікатор перетворення |
Призначення |
Тип даних |
% i |
Для виведення цілих чисел зі знаком |
int, short, long |
% d |
Для виведення цілих чисел зі знаком |
int, short, long |
% u |
Для виведення беззнакових цілих |
insigned int |
% f |
Для виведення дійсних чисел, в форматі числа з плаваючою точкою |
float, double |
% n.mf |
Для виведення дійсних чисел в форматі з фіксованою точкою, де n – кількість цифр цілої частини, m – дробової |
float, double |
%e |
Для виведення дійсних чисел в експоненційному представленні |
float, double |
%g |
Для вибору одного з специфікаторів %f чи %e, який дозволить представити число у більш короткому вигляді |
float, double |
%o |
Для виведення цілих чисел у вісімковій системі числення |
int, short, long |
%x |
Для виведення цілих чисел у шістнадцятко вій системі числення |
int, short, long |
%c |
Для виводу символів |
char |
%s |
Для виводу стрічки |
char [] |
%% |
Для виводу знаку % |
|
Функція printf повертає число виведених символів чи від'ємне значення у випадку помилки.
Специфікатори перетворення записуються в те місце у стрічці форматування, в яке потрібно вивести значення змінної, вказаної в наступних параметрах функції printf (рис 10.1).
Рисунок 10.1 – Виведення значень змінних на екран
Як видно з рис. 10.1 значення змінної sum1 буде виведено на місце першого специфікатора перетворення (%i) у стрічці форматування, а значення змінної sum2 відповідно на місце другого специфікатора перетворення. У випадку, якщо sum1=3, а sum2 =15, функція printf з рис. 10.1 виведе на екран наступне:
Специфікатор перетворення %n.mf дозволяє здійснювати форматування чисел при виведенні таблиць значень.
Приклад 10.1. Виведення на екран повідомлень.
printf ("Hello Angeliсa!");
printf ("To be or not to be that is the question");
Приклад 10.2. Використання специфікаторів перетворення для виведення повідомлень та значень змінних.
int apples = 2, peares = 5;
float cash = 12.4f;
char symbol= ‘F’;
printf (“ Apples = %i”, apples); /* виведення на екран
значення змінної apples
типу int*/
printf (“ Apples = %i Peares = %i”, apples, peares);
/* виведення на екран
значень змінних apples
та peares типу int*/
printf (“ Cash = %f”, cash); /* виведення на екран
значення змінної cash
типу float*/
printf (“ Symbol = %c”, symbol); /* виведення на екран
значення змінної symbol
типу char*/
У стрічці управління для форматування інформації що виводиться на екран можуть бути використані керуючі послідовності (escape sequences)), які представляють собою спеціальні символьні комбінації. Керуюча послідовність складається зі зворотного слеша (\) (обов'язковий перший символ) і комбінації латинських літер і цифр (табл. 10.2).
Таблиця 10.2. Керуючі послідовності
Керуюча послідовність |
Пояснення |
\a |
Подача звукового сигналу |
\b |
Повернення на крок |
\t |
Горизонтальна табуляція |
\n |
Перехід на новий рядок |
\r |
Повернення каретки |
\” |
Подвійні лапки |
\’ |
Одинарні лапки |
\0 |
Нульовий символ |
\\ |
Зворотна дробова риса |
\ddd |
Вісімкове значення символу ASCII |
\xddd |
Шістнадцяткове значення символу ASCII |
Керуючі послідовності вигляду \ddd та \xddd (d позначає цифру) дозволяють представити будь-який символ з таблиці кодів ASCII у вигляді вісімкових чи шістнадцяткових чисел відповідно.
Приклад 10.3. Керуючі послідовності
printf(“\n”); /* перехід на новий рядок */
printf(“\012”); /* перехід на новий рядок при
використанні вісімкового
значення символу ASCII */
printf(“\x00A”); /* перехід на новий рядок при
використанні шістнадцятко-
вого значення символу
ASCII */
printf ("sum = %i \n", sum); /* виведення на екран значення
змінної sum типу int та
переходу на новий рядок */
printf ("a = %i\tb = %f \n", a, b);
/* виведення на екран значень
змінної a типу int та b
типу float при використанні
табуляції та переходу на
новий рядок */