- •Елементи мови с.Основні символи
- •Ключові слова
- •Ідентифікатори
- •Константи
- •Лексеми
- •Коментарі
- •Умовні оператори. Логічні вирази
- •Форми оператора if
- •Оператор вибору switch
- •Перерахування типів
- •Перетворення типів
- •Оператори циклу
- •Оператор while
- •Оператор for
- •Оператор do-while
- •Оператори переходу
- •Cтруктури
- •Об'єднання (суміші)
- •Робота з структурами.
- •Ініціалізація структур
- •Робота з обєднаннями
- •Визначення об'єктів та типів
- •Методи доступу до елементів масивів
- •Покажчики на багатовимірні масиви
- •Операції з вказівниками
- •Робота з покажчиками.
- •Покажчики на структуру
- •Масиви структур
- •Динамічне розміщення масивів
- •Робота з динамічними масивами
- •Робота з непрямою адресацією
- •Робота з покажчиками як параметрами функцій
- •Використання вказівників
- •Операції з вказівниками
- •Використання вказівників в програмі
- •Робота з файлами
- •Відкриття файлу
- •Обробка відкритого файлу
- •Перевірка ознаки кінця файлу
- •Закриття файлу
- •Функції введення-виведення
- •Робота з текстовими файлами
- •Функція форматованого виведення printf ()
- •Основні формати
- •Модифікації форматів
- •Функція форматованого введення scanf ()
- •Робота функції scanf ()
- •Призначеня функцій бібліотеки введення-виведення
- •Макрокоманди
- •Потокові інтерфейси введення-виведення
- •Ближні покажчики (near)
- •Дальні покажчики (far)
- •Покажчики huge
- •Функції для роботи з рядками
- •Динамічні рядки, клас string
- •Визначення поточної робочої директорії
- •Визначення поточного каталогу диска
- •Визначення / встановленн поточного диска
- •Пошук файлу
- •Створення, видалення, зміна директорій
- •Приклад програми для роботи з директоріями
- •Перегляд каталогу диска
- •Параметри структури ffblk
- •Робота з клавіатурою
- •Робота з файлами
- •Послідовний доступ до елементів двійкових файлів
- •Організація довільного доступу до елементів двійкових файлів
- •Робота динамічних структур даних.
- •Функції управління пам'яттю
- •Атрибути файлів.
- •Параметри
- •Динамічні структури даніх
- •Лінійні списки
- •Стек. Загальні поняття.
- •Приклад використання стеку
- •Основні визначення
- •Приклад використання дерев
Робота з файлами
Під час роботи програма може обмінюватися даними з будь-якими зовнішніми пристроями: клавіатурою, монітором, жорстким диском і т. д. Для такого обміну даними використовується поняття файл
Файл - це інформація, розміщена на якомусь носії (диску) або в буфері вводу / виводу пристрою (клавіатура). Для обміну даними файл повинен бути відкритий, по завершенні цього процесу - закритий.
Потік - це логічний канал, призначений для виконання операцій введення / виводу. Кожному файлу при його відкритті ставиться у відповідність потік.
У мові C існують стандартні потоки:
stdin - стандартний консольне введення (клавіатура за замовчуванням);
stdout - стандартний консольний вивід (монітор за умовчанням);
Стандартні потоки відкриваються при кожному запуску програми.
Для роботи з файлами в програмах на C використовується заголовний файл stdio.h, в якому оголошено спеціальний тип даних - структура FILE, призначена для зберігання атрибутів (параметрів) файлів (покажчик поточної позиції файлу, ознака кінця файла, прапори індикації помилок, відомості про буферизації та ін.)
Поля структури типу FILE доступні за допомогою спеціальних
C-функцій. Для організації роботи з файлом використовується певна послідовність дій.
Оголошення потоку - змінної-покажчика на структуру типу FILE, в якій зберігатимуться атрибути файлу
FILE * fl,
де * fl - покажчик на файл.
Відкриття файлу
fl = fopen ("шлях до файлу", "режим роботи файлу");
Параметр "шлях до файлу" вказує розміщення файлу на диску і обов'язково містить ім'я файлу і може містити ім'я логічного диска і шлях.
Параметр "режим роботи файлу" показує, як буде використовуватися файл:
"W" - для запису даних (висновок);
"R" - для читання даних (введення);
"A" - для додавання даних до існуючих записів.
Приклади відкриття файлів:
FILE * f_in, * _out;
f_in = fopen ("My_file1", "r");
f_out = fopen ("My_file2", "w");
Функція fopen () повертає значення покажчика на структуру типу файл. Якщо файл з якихось причин не відкривається, функція fopen () повертає значення NULL.
Розглянемо особливості режимів відкриття файлів. Якщо файл відкривається в режимі запису даних "w", то покажчик поточної позиції встановлюється на початок файла. Якщо зазначений у функції fopen () файл не існує, то він створюється. Необхідно пам'ятати, що відкриття існуючого файлу в режимі "w" призводить до знищення його старого змісту.
Відкриття файлу для читання в режимі "r" можливо тільки для створеного раніше файлу, при цьому покажчик поточної позиції встановлюється на початок файла. Якщо відкривається на читання файл не існує, функція fopen () повертає порожній покажчик зі значенням NULL.
Якщо файл відкривається в режимі додавання даних "a", то покажчик поточної позиції встановлюється на кінець файлу. Дані, раніше поміщені у файл, залишаються без змін. Якщо вказується неіснуючий файл, то він створюється заново. Також можна вказати додаткові умови режиму відкриття файлу:
"B" - двійковий потік;
"T" - текстовий потік;
"+" - Оновлення файлу.
Приклад
"R +" - читання файлу з оновленням, тобто можлива перезапис даних з усіканням;
"W +" - запис у файл і одночасно читання;
"A +" - додавання даних і читання.
Для почергового виконання читання і запису в режимі "+" необхідно ручне позиціонування курсору.
Питання для контролю:
1.Що таке файл?
2.Що таке потік?
3. Як відкрити файл?
4. Які є режими відкриття файлу?
Література:
1. 1.Шилдт Г.: Пер. с англ. –М.: Издательский дом “Вильямс”, 2002. –704с. –с. 284-301
Урок №40
(згідно робочої навчальної програми)
Тема: Обробка текстових файлів по рядках.
Питання:
1. Обробка відкритого файлу
2. Перевірка ознаки кінця файлу
3. Закриття файлу
