МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ „ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра інформаційних
систем та мереж
Лабораторна робота №3
на тему:
Базові типи даних. Бібліотечні функції форматованого введення даних з
клавіатури та виведення результатів на екран
Мета роботи: вивчити правила оголошення змінних базових типів даних та бібліотечні функції форматованого введення даних з клавіатури та виведення
їх на екран.
Теоретичні відомості
Для введення-виведення даних необхідно підключити файл-заголовок stdio.h . Підключення відбувається за допомогою директиви препроцесора #include, наприклад: #include <stdio.h>
1) Форматоване виведення даних відбувається за допомогою функції printf, прототип якої має такий вигляд:
int printf (const char *format [, argument, ...]);
де format – форматний рядок, argument – зміні або вирази, значення яких виводяться на екран. Форматний рядок функції printf складається із специфікацій форматів. Специфікація форматованого виведення має вигляд:
% [flags] [width] [.prec] [size_modifier] type_char, де:
flags={-,+|пропуск, #} – набір прапорців, які можуть приймати значення;
width ={n|0n|*}– ширина поля виведення; тут n позначає ціле число;
prec ={none|0|n|*}– точність виведення чисел та рядків символів; тут none позначає відсутність позначення точності, а n – ціле число;
size_modifier ={F|N|h|l|L}– модифікатор розміру типу. Модифікатор типу використовується у комбінації з форматними символами;
type_char ={d|i|o|u|x|X|f|e|g|E|G|c|s|p}– символ типу:
d значенням аргументу є десяткове цiле число;
o вiсiмкове цiле число;
x, X шiстнадцяткове цiле число;
i цiле число у 10, 8 або 16 системi числення;
u беззнакове цiле число;
c символ;
s рядок символiв;
e, E дiйсне десяткове з експонентою (з плаваючою крапкою);
f дiйсне десяткове з фiксованою крапкою;
g, G найбiльш короткий формат iз e або f;
p вказiвник (адреса в 16-вiй системi числення);
Крім специфікацій форматів у форматному рядку можна задавати інші друковані та керуючі символи, які будуть виведені на екран.
2) Форматоване введення даних відбувається за допомогою функції scanf,
прототип якої має такий вигляд:
int scanf (const char *format [, address, ...]);
де format – форматний рядок, address – адреси змінних, значення яких вводяться з клавіатури.
Форматний рядок функції scanf складається із специфікацій форматів. Специфікація форматованого введення даних за допомогою функції scanf має
вигляд:
% [flag] [width] [size_modifier] type_char де
flag =‘*’ - позначає пропуск введення поля даних із вхідного потоку;
width – кількість символів, які будуть прочитані із вхідного потоку;
size_modifier ={F|N|h|l|L}– модифікатор розміру типу;
type_char ={d|D|i|I|o|O|u|U|x|X|f|e|g|E|G|c|s|p}– символ типу.
Дані у вхідному потоці повинні розділятися порожніми символами – пропусками, табуляціями та переходами на новий рядок. Якщо у форматному рядку функції scanf зустрічаються символи, відмінні від допустимих специфікацій формату, то їх необхідно ввести з клавіатури. Це дає можливість розділяти дані вхідного потоку символами, відмінними від порожніх.
Програма
#include <conio.h>
#include <stdio.h>
void main(){
long double a=5.763115E+00;
double b=2.149998E+02;
short c=-401;
long d=-29993;
float a2=1.324656E+00;
char b2='*';
short c2=0425;
int d2=0363;
puts("Funccia scanf:\n");
scanf("14.6LE,12.6E,hi:11ld\n",&a,&b,&c,&d);
printf("%14.6LE,%12.6E,%hi:%11ld\n",a,b,c,d);
puts("Funccia printf:\n");
printf("\aa=%-*.0G\a b=%9c\nc=%-010.*hx\nd=%+-*.*X",7,a2,b2,9,c2,8,5,d2);
getch();
}
Результати виконання програми:
Висновок: на цій лабораторній роботі я ознайомився з форматованим введенням-виведенням на мові Сі. Воно дозволяє вводити та виводити дані у зручному та необхідному нам форматі.