Теоретичні відомості
Файли
Комп’ютерний практикум 4
1.Мета. Навчитися вводити і виводити інформацію в файли.
2.Задачі:
1) навчитись використовувати директиви препроцесора;
2) навчитись створювати файл;
3) навчитись записувати інформацію у файл;
4) навчитися читати інформацію з файлу;
5) розробити програму за варіантом;
6) проаналізувати отримані результати;
7) оформити звіт.
В інтегроване середовище підготовки програм мовою С++ входить препроцесор. Призначення препроцесора – обробка вхідного тексту програми до її компіляції. Для керування препроцесором використовуються директиви препроцесора, кожна з яких розміщується в окремому рядку і починається символом «#». Визначені наступні препроцесорні директиви: #include, #define, #undef, #if, #ifdef, #ifundef, #else, #endif, #elif і т. ін.
Директива #include дозволяє включати в текст програми як тексти стандартних файлів, так і тексти з файлів створених користувачем. Наприклад:
#include <conio.h> // підключається стандартний файл
#include “my,cpp” // підключається файл користувача
Директива #define має декілька модифікацій. Вона передбачає визначення макросів чи препроцесорних ідентифікаторів, кожному з яких ставиться у відповідність деяка символьна послідовність. Наприклад:
#define K 40 // задається константа К дорівнює 40
#define MAX(x,y) ((x)>(y))?(x):(y) // макрос для визначення максимального зна //чення серед двох чисел
Директива #undef відміняє дію директива #define.
Директива #if і її модифікації #ifdef, #ifundef разом з директивами #else, #endif, #elif дозволяють організувати умовну обробку тексту програми, тобто можна компілювати не весь текст програми, а тільки вказані частини.
Файл – це послідовність байтів. Функції введення та виведення інформації в стандартній бібліотеці С++ дозволяють читати дані з файлів і записувати їх у файли. Стандартні функції обробки файлів знаходяться в заголовочному файлі stdio.h. Відкривши файл, з ним пов’язується потік (stream), з яким потім працюють усі функції обробки файлів. Вміст файла перевантажується в потік. Під час закриття файлу вся інформація з потоку вивантажується у файл і потік звільняється, а файл стає доступним для операційної системи.
Таблиця 4.1 - Функції обробки файлів
Назва функції | Призначення | Прототип |
fopen() | Відкриває файл та пов’язує потік з іменем файлу, повертає вказівник на відкритий файл або NULL | FILE fopen(char * pathname, char *type) |
fclose() | Закрити потік. Повертає 0 або EOF (кінець файлу). | int fclose(FILE *stream) |
fscanf() | Форматоване виведення (читання). | int fscanf(FILE *stream, char *format,[argument…]) |
fprintf() | Форматоване введення (запис). | int fprintf(FILE *stream, char *format,[argument…]) |
ftell() | Поточне положення вказівника файлу. У разі помилки повертає –1L. | long int ftell(FILE *stream) |
fseek() | Переміщує вказівник файлу. Повертає ціле число. | int fseek(FILE *stream,long offset,int origin) |
feol() | Кінець файлу. Повертає 0 або 1. | int feol(FILE *stream) |