Лабораторна робота №1
Тема: Обробка текстових файлів
Мета: Навчитись працювати з текстовими файлами, вивчити основні методи обробки текстових файлів та файлові функції для читання і запису текстових файлів.
Завдання:
Написати програму, яка виводить текст з файлу. Якщо файл не знайдено, то виводиться повідомлення на екран.
Обладнання: ПК, пакет turbo c , методичні вказівки до лабораторних робіт.
Теоретичні відомості
Файл - це іменований розділ для зберігання інформації. Мова С розглядає файл як послідовність байтів, кожний з яких може бути прочитаний індивідуально. Існує два види представлення файлів - двійковий та текстовий. У текстовому представлені файлів кожен байт доступний програмі. Текстові файли MS DOS представляють кінець рядку як /n. Програма написана на С, як /n. Якщо файл представлений у двійковому вигляді, програма буде бачити обидва символи і ніякого перетворення не відбудеться. Звичайно, текстове представлення використовується для текстових, а двійкове – для двійкових файлів. Але можна використовувати будь-яке представлення для будь-якого файлу, хоча текстове представлення двійкового файлу працює погано.
В мові С існують стандартні потоки:
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.
Також можна казати додаткові умови режиму відкриття файлу:
"b" – двійковий потік;
"t" – текстовий потік;
"+" – оновлення файлу.
Можна прочитати вже відкритий файл або записати в нього інформацію за допомогою спеціальних функцій:
Читання(введення):getc(), fscanf(),fgets(),fread()
Запис(Виведення): putc(),fprintf(),fputs(),fwrite()
При кожній операції введення/виведення вказівник поточної позиції файлу зміщується на одну позицію в сторону кінця файлу.
Перевірка признаку кінця файлу
Так як при кожній операції введення/виведення відбувається переміщення вказівника поточної позиції в файлі, в деякий момент вказівник досягає кінця файлу.
Структура типу FILE має поле – індикатор кінця файлу. Функція feof()
перевіряє стан ідентифікатора кінця файлу і повертає значення 0, якщо кінець файлу не був досягнутий, або значення, відмінне від нуля, якщо був досягнутий кінець файлу. Виклик функції:
if (! feof(f_in))…
перевіряє, що кінець файлу ще не досягнутий.
Закритя файлу
Після завершення обробки файлу його слід закрити за допомогою функції fclose().
Формат виклику функції
fclose(f_in);
Хід роботи:
Вивчити теоретичні відомості.
Написати програму, в якій:
1). Підключити потрібні бібліотеки;
2). Для читання з файлу використати змінну ptr;
3). При відкритті файлу зробити перевірку: якщо змінній ptr присвоєно значення NULL, то файл не знайдено. При цьому виводиться повідомлення повідомлення і програма завершується. Якщо ж ні, то файл відкривається. Після цього файл читається до тих під, поки не настане кінець файлу (!feof(ptr)).
4). Зчитані символи помістити в зміну ch, а потім виве...