Робота з файлами у мові Сі

Для програміста відкритий файл представляється як послідовність даних, що зчитуються або записуються. При відкритті файлу з ним зв'язуєтьсяпотік введення-виводу. Інформація, що виводиться записується в потік, інформація, що вводиться, зчитується з потоку.

Коли потік відкривається для введення-виведення, він зв'язується зі стандартною структурою типу FILE, яка визначена stdio.h. Структура FILE містить потрібну інформацію про файл.

Відкриття файлу здійснюється за допомогою функції fopen(), яка повертається покажчик на структуру типу FILE, який можна використовувати для подальших операцій із файлом.

FILE *fopen(name, type);

name - ім'я файлу, що відкривається (включаючи шлях), type - покажчик на рядок символів, що визначають спосіб доступу до файлу:

§ "r" - відкрити файл для читання (файл повинен існувати);

§ "w" - відкрити порожній файл для запису; якщо файл існує, його вміст втрачається;

§ "a" - відкрити файл для запису в кінець (для додавання); файл створюється, якщо він не існує;

§ "r+" - відкрити файл для читання та запису (файл повинен існувати);

§ "w+" - відкрити порожній файл для читання та запису; якщо файл існує, його вміст втрачається;

§ "a+" — відкрити файл для читання та доповнення, якщо файл не існує, він створюється.

Значення, що повертається - покажчик на відкритий потік. Якщо виявлено помилку, то повертається значення NULL.

Функція fclose() закриває потоки або потоки, пов'язані з відкритими за допомогою функції fopen() файлами. Потік, що закривається визначається аргументом функції fclose().

Значення, що повертається: значення 0, якщо потік успішно закритий; константа EOF, якщо сталася помилка.

#include int main()

if(fp =fopen(name, "r")! = NULL) < // Відкрити файл вдалося? . // необхідні дії над даними

> else printf("Не вдалося відкрити файл");

Читання символу з файлу:

Аргументом функції є покажчик потік типу FILE. Функція повертає код прочитаного символу. Якщо кінець файлу досягнуто або виникла помилка, повертається константа EOF.Запис символу у файл:

Аргументами функції є символ та покажчик на потік типу FILE. Функція повертає код прочитаного символу.

Функції fscanf() і fprintf() аналогічні до функцій scanf() і printf(), але працюють з файлами даних, і мають перший аргумент - покажчик на файл.

fscanf(потік, "ФорматВведення", аргументи); fprintf(потік, "ФорматВиводу", аргументи);

Функції fgets() і fputs() призначені для введення-виведення рядків, є аналогами функцій gets() і puts() до роботи з файлами.

Копіює рядок у потік із поточної позиції. Завершальний нуль-символ не копіюється.ПрикладВвести число та зберегти його у файлі s1.txt. Вважати число з файлу s1.txt, збільшити його на 3 і зберегти у файлі s2.txt.