Стандартний ввід/вивід - бібліотека 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