- •Тема. Створення та оброблення файлів даних
- •Основні функції, константи, типи та макроси для роботи з файлами
- •Оголошення змінних типу файл
- •Відкриття файлу
- •Використання функцій fread() та fwrite()
- •Функції fscanf() та fprintf()
- •Стандартні потоки
- •Перенаправлення потоків
- •Зчитування та запис текстових файлів
- •Зчитування та запис двійкових (бінарних) файлів Функції get() та put()
- •Функції read() та write()
Основні функції, константи, типи та макроси для роботи з файлами
Основні типи для роботи з файлами бібліотеки <stdio.h> (мови С) або <сstdio> (мови С++).
FILE — структура, вміщує інформацію про файл або текстовий потік, що необхідний для виконання нею операцій введення/виведення, використовується для визначення:
файлового дескриптора;
поточної позиції в потоці;
індикатору кінця файлу;
індикатору помилок;
вказівнику на буфер потоку.
fpos_t — використовується для унікальної ідентифікації позицій кожного байту у файлі, не масивоподібний тип.
size_t — беззнаковий цілийтип, що є типом результату виконання операторуsizeof.
Основні функції роботи з файлами бібліотеки <stdio.h> (мови С) або <сstdio> (мови С++).
Функція |
Операція |
fopen() |
Встановлює зв'язок з файлом та відкриває потік |
fclose() |
Закриває потік |
putc(), fputc() |
Записує символ у файл |
getc(), fgetc() |
Зчитує символ з файлу |
fgets() |
Зчитує символьний рядок з файлу, що закінчується символьного рядка чи кінця файлу |
fputs() |
Записує рядок у файл |
fseek() |
Встановлює курсор на заданий байт файлу |
ftell() |
Повертає поточну позицію курсору у файлі |
fprintf() |
Файловий аналог функції printf() – запис у файл даних за визначеним форматом |
fscanf() |
Файловий аналог функції scanf() – зчитування у файл даних за визначеним форматом |
feof() |
Повертає значення істина, якщо знаходимось в кінці файлу |
ferror() |
Повертає значення істина, якщо виникла помилка |
rewind() |
Встановлює курсор на початок файлу |
remove() |
Знищую файл |
rename() |
Перейменування файлу |
flush() |
Очищує потік. Здійснює запис вмісту буферу у файл, пов'язаний з вказівником на файл flush(f), якщо flush() – вміст буферу буде записаний в усі відкриті файли. При успішному виконанні повертає 0, в іншому EOF. |
fread() |
Зчитує дані з файлу |
fwrite() |
Записує дані у файл |
setbuf() |
|
tmpfile |
Створює та відкриває тимчасовий файл, що знищується при виконанні функції fclose() |
Основні константи для роботи з файлами бібліотеки <stdio.h> (мови С) або <сstdio> (мови С++).
Константа |
Визначення |
EOF |
Від’ємне ціле число типу int, що використовується для визначення кінця файлу |
NULL |
Представляє значення вказівнику, що гарантовано вказує на неіснуючу (порожню) адресу в пам’яті |
FOPEN_MAX |
Кількість файлів, що можуть бути відкритими одночасно (по замовчуванню, як мінімум дорівнює 8) |
FILENAME_MAX |
Розмір масиву типу char для зберігання повної назви файлу |
SEEK_SET |
Має цілий тип даних, що може бути передано до функції fseek() для отримання позиції відносно початку файлу |
SEEK_CUR |
Має цілий тип даних, що може бути передано до функції fseek() для отримання позиції відносно поточної позиції у файлу |
SEEK_END |
Має цілий тип даних, що може бути передано до функції fseek() для отримання позиції відносно кінця файлу |
TMP_MAX |
Максимальна кількість унікальних імен файлів, що генерує функція tmpnam(); мінімум 25 |
BUFSIZ |
Ціле тип даних. Вміщує розмір буферу, що використовується функцією setbuf(). |