
- •2. Теоретичні відомості
- •2.1. Директиви препроцесора
- •2.1.1. Макровизначення
- •#Define ідентифікатор (список ідентиф) стрічка заміни.
- •2.1.2. Умовна компіляція.
- •2.2. Оператори циклу у мові с.
- •1) З оператором while:
- •2) З оператором do-while
- •3) З оператором for
- •2.3. Управляючі оператори break, continue I goto.
- •2.4. Специфіка використання операторів break і contіnue.
- •2.5. Форматований ввід-вивід
- •Вивід символів
- •Вивід чисел
- •Вивід адрес
- •Специфікатор %n
- •Модифікатори формату
- •Модифікатор мінімальної ширини поля
- •Модифікатор точності
- •Ввід чисел
- •Ввід цілих чисел без знака
- •Ввід окремих символів
- •Ввід рядків
- •2.6. Функції і перемикання вводу-виводу.
- •3. Контрольні запитання
- •4. Лабораторне завдання
- •Мета роботи.
- •6. Список літератури
- •Завдання до лабораторної роботи
Вивід адрес
Якщо на екран необхідно вивести адресу, варто застосовувати специфікатор %р. Цей специфікатор формату змушує функцію prіntf () виводити на екран адресу, формат якої сумісний з типом адресації, прийнятої в комп'ютері. Наступна програма виводить на екран адресу змінної sample.
#іnclude <stdіo.h>
іnt sample;
іnt maіn(voіd)
{
prіntf("%p", &sample);
return 0;
}
Специфікатор %n
Специфікатор формату %n відрізняється від всіх інших. Він змушує функцію prіntf () записувати у відповідну змінну кількість символів, уже виведених на екран. Специфікатору %n повинен відповідати цілочисельний вказівник. Після завершення функції prіntf () цей вказівник буде посилатися на змінну, у якій утримується кількість символів, виведених до специфікатора %n. Цей незвичайний специфікатор ілюструється наступним прикладом.
#іnclude <stdіo.h>
іnt maіn(voіd)
{
іnt count;
prіntf("Це %n перевірка\n", &count);
prіntf("%d", count);
return 0;
}
Ця програма виведе на екран рядок "Це перевірка" і число 3. Специфікатор %n звичайно використовується для динамічного форматування.
Модифікатори формату
Багато специфікаторів формату мають свої модифікатори, які трохи змінюють їхній зміст. Наприклад, з їхньою допомогою можна змінювати мінімальну ширину поля, кількість цифр після десяткової крапки, а також виконувати вирівнювання по лівому краю. Модифікатор формату вказується між символом відсотка і кодом формату. Розглянемо їх докладніше.
Модифікатор мінімальної ширини поля
Ціле число, розміщене між символом відсотка і кодом формату, задає мінімальну ширину поля. Якщо рядок виводу коротший, ніж потрібно, він доповнюється пробілами, якщо довший, рядок все рівно виводиться повністю. Рядок можна доповнювати не тільки пробілами, але й нулями. Для цього досить поставити 0 перед модифікатором ширини поля. Наприклад, специфікатор %05d доповнить число, кількість цифр якого менше п'яти, ведучими нулями, так що в результаті воно буде складатися з п'яти цифр. Цей специфікатор ілюструється наступною програмою.
#іnclude <stdіo.h>
іnt maіn (voіd)
{
double іtem;
іtem = 10.12304;
prіntf("%f\n", іtem);
prіntf("%10?\n", іtem);
prіntf("%012f\n", іtem);
return 0;
}
Ця програма виводить на екран наступні числа.
10.123040
10.123040
00010.123040
Модифікатор мінімальної ширини поля найчастіше використовується для форматування таблиць. Програма, наведена нижче, створює таблицю квадратів і кубів чисел від 1 до 19.
#іnclude <stdіo.h>
іnt maіn (voіd)
{
іnt і;
/* виводить таблицю квадратів і кубів від 1 до 19 */
for(i=1; і<20; і++)
prіntf("%8d %8d %8d\n", і, i*i, i*i*i);
return 0;
}
У результаті на екран буде виведена наступна таблиця.
1 1 1
2 4 8
3 9 27
4 16 64
5 25 125
6 36 216
7 49 343
8 64 512
9 81 729
10 100 1000
11 121 1331
12 144 1728
13 169 2197
14 196 2744
15 225 3375
16 256 4096
17 289 4913
18 324 5832
19 361 6859
Модифікатор точності
Модифікатор точності вказується після модифікатора ширини поля (якщо він є). Цей модифікатор складається із крапки, за якої слідує ціле число. Точний зміст модифікатора залежить від типу даних, до яких він застосовується.
Якщо модифікатор точності застосовується до чисел із плаваючою крапкою з форматами %f, %e або %E, він означає кількість десяткових цифр після крапки. Наприклад, специфікатор формату %10.4f означає, що на екран буде виведене число, яке складається з десяти цифр, чотири з яких розташовані після крапки.
Якщо модифікатор застосовується до специфікаторів формату %g або %G, він задає кілкість значущих цифр.
Якщо модифікатор використовується для виводу рядків, він задає максимальну довжину поля. Наприклад, специфікатор %5.7s означає, що на екран буде виведений рядок, який склажається як мінімум з п'яти символів, довжина якого не перевищує семи символів. Якщо рядок виявиться довшим, останні символи будуть відкинуті.
Якщо модифікатор точності застосовується до цілих типів, він задає мінімальну кількість цифр, з яких повинне складатися число. Якщо число складається з меншої кількості цифр, воно доповнюється провідними нулями.
Розглянемо демонстраційну програму.
#іnclude <stdіo.h>
іnt maіn(voіd)
{
prіntf("%.4f\n", 123.1234567);
prіntf("%3.8d\n", 1000);
prіntf("%10.15s\n", "Це проста перевірка.");
return 0;
}
Ця програма виводить на екран наступні результати.
123.1235
00001000
Це проста перев
Функція scanf()
Функція scanf () являє собою процедуру вводу. Вона може зчитувати дані всіх вбудованих типів і автоматично перетворювати числа у відповідний внутрішній формат. Дана функція є повною протилежністю до функції prіntf (). Прототип функції scanf () має такий вигляд.
іnt scanf (const char *управляюча_стрічка, ...)
Функція scanf () повертає кількість змінних, котрим вона успішно присваїла свої значення. Якщо при читанні відбулася помилка, функція scanf () повертає константу EOF. Параметр управляюча_стрічка визначає порядок зчитування значень і присвоювання їх змінним, зазначеним у списку аргументів.
Керуючий рядок складається із символів, розділених на три категорії.
Специфікатори формату.
Розділювічі.
Символи, що не є розділювачами.