При досягненні кінця файлу програма повинна зупинитися після досягнення кінця файлу. Якщо при спробі читання символу функція getc () зустрічає символ кінця файлу, повертається спеціальне значення EOF. Програма на С виявляє кінець файлу після того, як намагається вважати символ, що знаходиться за ознакою кінця файлу.
ch = getc (fp); // отримання початкового введення
putchar (); // обробка введення
cp = getc (fp); // отримання наступного введення
Функція fclose () закриває файл, при цьому очищаються буфери. Бажано перевірити - чи був файл успішно закритий. Функція fclose () повертає 0 при успішному закритті файлу або EOF - в інших випадках.
if (fclose (fp)! = 0) printf ( "Не можу закрити файлу \ n");
Функції fprintf (), fscanf (), fgets (), fputs ()
Функції введення / виведення файлів, fprintf () іfscanf () функціонують точно так само, як printf () іscanf (). Різниця полягає в застосуванні додаткового перший аргумент, що визначає файл.
fgets (buf, MAX, fp);
Здесьbuf- ім'я масиву тіпаchar, MAX - максимальний розмір рядка, а fp - покажчик на FILE.
Функція fgets () зчитує інформацію з вхідного потоку до тих пір, поки не зустріне перший символ нового рядка або ж поки лічено менш, ніж задано верхньою межею кількості символів мінус один або ж поки не досягнуто кінець файлу. Потім функція fgets () додає кінцевий нульовий символ з метою формування рядка. Якщо fgets () зчитує цілий рядок до того, як досягнута межа, в кінці рядка додається символ нового рядка, як раз перед нульовим символом. У цьому вона відрізняється від функції gets (). яка зчитує символ нового рядка, але опускає його. Як і gets (), функція повертає значення NULL в разі, якщо зустрічається символ EOF.
Функція fseek () дозволяє звертатися з файлом як з масивом і переміщатися безпосередньо до будь-якого потрібного байту в файлі, відкритому за допомогою функції fopen (). Перший з трьох аргументів функції fseek () - це покажчик наFILE. Другий аргумент називається зміщенням, з його допомогою функція отримує інформацію про те, як далеко слід просунутися від початкової точки. Тип аргументу повинен відповідати long. Він може бути позитивним (рух вперед), негативним (рух назад) або нульовим (залишатися на місці). Третій аргумент - режим вибору початкової точки: