Стандартний ввід/вивід - бібліотека stdio.h.
Стандартна бібліотека мови Сі
Стандартною бібліотекою мови Сі (також відома як libc) називається частина стандарту ANSI C, присвячена заголовним файлам і бібліотечним підпрограмам. Є описом реалізації загальних операцій, таких як обробка введення/виводу і рядків, в мові програмування Сі. Стандартна бібліотека мови Сі - це опис програмного інтерфейсу, а не справжня бібліотека, придатна для використання в процесі компіляції.
Заголовні файли стандартною бібліотекою мови Сі
Стандартна бібліотека мови Сі включає наступні заголовні файли: assert.h, complex.h, ctype.h, errno.h, fenv.h, float.h, inttypes.h, iso646.h, limits.h, locale.h, math.h, setjmp.h, signal.h, stdarg.h, stdbool.h, stddef.h, stdint.h, stdio.h, stdlib.h, string.h, tgmath.h, time.h, wchar.h, wctype.h - всього 24 заголовні файли.
З них три заголовні файли iso646.h, wchar.h і wctype.h були додані в Додатку 1 (скорочено NA1) - доповненні до Стандарту мови Сі, ратифікованому в 1995. А шість заголовних файлів complex.h, fenv.h, inttypes.h, stdbool.h, stdint.h і tgmath.h були додані в C99, версії Стандарту мови Сі, опублікованому в 1999 році.
assert.h - Містить макрос тверджень, використовуваний для виявлення логічних і деяких інших типів помилок у відлагоджуваній версії програми.
complex.h - Набір функцій для роботи з комплексними числами. (З'явилося в C99)
ctype.h - Містить функції, використовувані для класифікації символів за їх типами або для конвертації між верхнім і нижнім регістрами незалежно від використовуваного кодування (зазвичай ASCII або одне з її розширень, хоча є і реалізації, використовуючі EBCDIC).
errno.h - Для перевірки кодів помилок, повертаних бібліотечними функціями.
fenv.h - Для управління середовищем, що використовує числа з плаваючою комою. (З'явилося в C99)
float.h - Містить заздалегідь визначені константи, що описують специфіку реалізації властивостей бібліотеки для роботи з числами з плаваючою комою, як, наприклад, мінімальна різниця між двома різними числами з плаваючою точкою (_EPSILON), максимальне число цифр точності (_DIG) і область допустимих чисел (_MIN, _MAX).
inttypes.h - Для точної конвертації цілих типів. (З'явилося в C99)
iso646.h - Для програмування в кодуванні ISO 646. (З'явилося в NA1)
limits.h - Містить заздалегідь задані константи, що визначають специфіку реалізації властивостей цілих типів, як, наприклад, область допустимих значень (_MIN, _MAX).
locale.h - Для setlocale() і пов'язаних констант. Використовується для вибору відповідної мови.
math.h - Для обчислення основних математичних функцій. Це заголовний файл стандартної бібліотеки мови програмування З, розроблений для виконання простих математичних операцій. Більшість функцій притягають використання чисел з плаваючою точкою. C++ також реалізує ці функції для забезпечення сумісності, усі вони містяться в заголовному файлі cmath. Усі ці функції приймають double, якщо не визначено інакше. Для роботи з типами float і long double використовуються функції з постфіксами f і l відповідно. Усі функції, що приймають або повертають кут, працюють з радіанами.
setjmp.h - Оголошує макроси setjmp і longjmp, використовувані для переходів
signal.h - Для управління різними винятковими умовами
stdarg.h - Це заголовний файл стандартної бібліотеки мови програмування СІ, що надає засоби для перебору аргументів функції, кількість і типи яких заздалегідь не відомі. Вміст stdarg.h часто використовують у функціях з довільною кількістю змінних (приміром, printf, scanf).
stdbool.h - Для булевих типів даних. (З'явилося в C99)
stdint.h - Для визначення різних типів цілих чисел. (З'явилося в C99)
stddef.h - Це заголовний файл стандартної бібліотеки мови програмування З, що визначає макроси NULL і offsetof, а також типи ptrdiff_t, wchar_t, і size_t.
wchar_t - це реалізація широкосимвольного типу, зумовленого в С++, але що вимагає включення "stddef.h" або "wchar.h" в мові програмування Сі.
stdio.h - Реалізує основні можливості введення і виводу в мові Сі. Цей файл містить дуже важливу функцію printf.
stdlib.h - Для виконання безлічі операцій, включаючи конвертацію, генерацію псевдовипадкових чисел, виділення пам'яті, контроль процесів, оточення, сигналів, пошуку і сортування.
string.h - Для роботи з різними видами рядків.
tgmath.h - Для типових математичних функцій. (З'явилося в C99)
time.h - Для конвертації між різними форматами часу і дати.
wchar.h - Для обробки "широких" потоків і декількох видів рядків за допомогою "широких" символів (підтримка набору мов). (З'явилося в NA1)
wctype.h - Для класифікації "широких" символів. (З'явилося в NA1)
wchar.h
wchar.h - заголовний файл стандартної бібліотеки мови програмування Сі, частина стандарту розширення можливостей мови 1995 року. Містить функції для роботи з багатобайтовими і широкими символами.
Функції
int wcscasecmp(const wchar_t *s1, const wchar_t *s2) - широкосимвольный еквівалент функції strcasecmp.
int strcasecmp(const char *s1, const char *s2) - порівнює два рядки s1 і s2, ігноруючи регістр символів. Повертає негативне, нульове або позитивне значення int, якщо s1 відповідно менше, співпадає або більше s2.
int strncasecmp(const char *s1, const char *s2, size_t n) - майже аналогічна strcasecmp, за винятком того, що порівнює тільки перші N символів s1.
int wcscmp(const wchar_t *s1, const wchar_t *s2) - широкосимвольный еквівалент функції strcmp.
stdio.h
stdio.h (від англ. standard input/output header - стандартний заголовний файл введення/виводу) заголовний файл стандартної бібліотеки мови Сі, що містить визначення макросів, константи і оголошення функцій і типів, використовуваних для різних операцій стандартного введення і виводу. Функціональність успадкована від "портативного пакету введення/виводу" ("portable I/O package"), написаного Майком Леском з Bell Labs на початку 1970-х. У C++ заради сумісності, також використовує stdio.h разом з схожим по функціональності заголовним файлом cstdio.
Функції
Функції, оголошені в stdio.h, є дуже популярними завдяки тому, що будучи частиною Стандартної бібліотеки мови Сі, вони гарантують роботу на будь-якій платформі, що підтримує Сі. Додатки на окремих платформах можуть, проте, мати причини для використання функцій введення/виведення самої платформи замість функцій stdio.h.
Функції, оголошені в stdio.h призначені або для операцій з файлами або для операцій введення-виводу.
Функція стандартного виведення printf()
Функція printf() є функцією стандартного виводу. За допомогою цієї функції можна вивести на екран монітора рядок символів, число, значення змінної.
Функція printf() має прототип у файлі stdio.h
int printf(char *рядок, що управляє, ..);
У разі успіху функція printf() повертає число виведених символів.
Рядок, що управляє, містить два типи інформації : символи, які безпосередньо виводяться на екран, і специфікатори формату, що визначають, як виводити аргументи.
Функція printf() це функція форматованого виводу. Це означає, що в параметрах функції необхідно вказати формат даних, які виводитимуться. Формат даних вказується специфікаторами формату. Специфікатор формату починається з символу % за яким йде код формату. %з символ
%%d ціле десяткове число
%%i ціле десяткове число
%%e десяткове число у вигляді x.xx e+xx
%%E десяткове число у вигляді x.xx E+xx
%%f десяткове число з плаваючою комою xx.xxxx
%%F десяткове число з плаваючою комою xx.xxxx
%%g %f або %e, що коротше
%%G %F або %E, що коротше
%%o вісімкове число
%%s рядок символів
%%u беззнакове десяткове число
%%x шістнадцятиричне число
%%X шістнадцятиричне число
%% %% символ %
%%p покажчик
%%n покажчик
Крім того, до команд формату можуть бути застосовані модифікатори l і h.%ld друк long int
%%hu друк short unsigned
%%Lf друк long double
У специфікаторі формату, після символу % може бути вказана точність (число цифр після коми). Точність задається таким чином: %.n<код формату>. Де n - число цифр після коми, а <код формату> - один з кодів приведених вище.
Наприклад, якщо у нас є змінна x=10.3563 типу float і ми хочемо вивести її значення з точністю до 3-х цифр після коми, то ми повинні написати:
printf("Змінна x = %.3f", x);
Результат:
Змінна x = 10.356