Файли в мові С презентация

Слайд 2

У разі виникнення помилки при відкритті файлу ця функція повертає NULL. Якщо до

символів, які задають режим, дописана літера t, то файл використовується як текстовий (цей режим діє за умовчанням), якщо ж літера b – то як двійковий.
Зауваження 1. Хоча режим оновлення допускає як запис, так і читання із файлу, але при переході від операції запису до читання слід звертатись до стандартної функції
int fflush (FILE* fp);
яка виконує додатковий запис усіх даних, що ще залишились у буфері.
Зауваження 2. Всі функції, які працюють із файлами, підключаються через файл stdio.h або cstdio .
Для закриття файлу використовується стандартна процедура:
int fclose (FILE* fp);

Слайд 3

Деякі стандартні функції для роботи з файлами в мові С

1. int fgetc

(FILE*fp);
Здійснює введення чергового символу із вказаного файлу. Якщо повертає константу EOF, то сталась помилка або досягнуто кінця файлу.
2. int fputc (int ch, FILE*fp);
Виводить символ з кодом ch у вказаний файл. Повертає змінну з кодом ch або EOF, якщо сталась помилка.
3. char * fgets (char *s, int n, FILE *fp);
Здійснює введення в стрінг s (буфер) символів із файлу fp, до тих пір, поки не виконається одна з умов:
виникає символ '\n' (початок нового рядку);
досягнутий кінець файлу;
прочитано n-1 символів.
Після цього стрінг доповнюється '\0'. У першому випадку перед '\0' записується '\n'.
Якщо читання із файлу завершено успішно, то повертає вказівник на стрінг s, у разі помилки – повертає NULL.
4. int fputs (char *s, FILE *fp);
Ця функція виводить стрінг s у вказаний файл. Повертає 0 або EOF, якщо сталась помилка.

Слайд 4

5. int fprintf (FILE *fp , char *format, …);
Ця функція здійснює форматований вивід

своїх аргументів у файл, який ідентифікується файловою змінною fp, під керівництвом стрінгу format.
6. int fscanf (FILE *fp , char *format, …);
Здійснює форматоване, визначене стрінгом format, введення з вказаного файлу.
7. int feof (FILE *fp);
Повертає не 0 (тобто ІСТИНУ), якщо при читанні із файлу був досягнутий кінець файлу і 0 (тобто ХИБНІСТЬ) у супротивному випадку.
8. int ferror (FILE *fp);
Повертає не 0 (тобто ІСТИНУ), якщо при виконанні операцій введення або виведення із файлом fp виникали помилки і 0 (тобто ХИБНІСТЬ) у супротивному випадку.
9. void rewind (FILE *fp);
Покажчик поточної позиції у файлі пересувається на початок файлу. При цьому покажчик кінця файлу та покажчик помилок занулюються.
Всі згадані функції підключаються через файли stdio.h або cstdio

Слайд 5

Стандартна послідовність дій для роботи з файлом виглядає наступним чином:

FILE *fp_in =

fopen ("G:\\in.txt", "r");
if (fp_in) // якщо файл існує
{
// тут працюємо з файлом
fclose (fp_in);
}
else // якщо файл не існує
fprintf (stderr, "\n Error!!!");

Слайд 6

Файли прямого доступу

Прямий (direct access) (на відміну від послідовного) доступ до
файлу

реалізують наступні стандартні функції:
1. int fgetpos ( FILE *fp, fpos_t *pos);
Заносить у змінну pos, типом якої є fpos_t (це синонім типу long int), значення поточної позиції у файлі fp. Повертає 0, якщо позиція pos успішно визначена.
2. int fsetpos ( FILE *fp, fpos_t *pos);
Встановлює у файлі fp поточну позицію в положення, визначене вказівником pos. Останній мав бути раніше визначений функцією fgetpos. Повертає 0, якщо позиція pos успішно встановлена.
3. int fseek ( FILE *fp, long offset, int from_where);
Встановлює у файлі fp поточну позицію в положення, що відстоїть на offset байтів від положення, визначеного аргументом from_where у бік кінця файлу при offset>0 і в бік початку при offset<0. Аргумент from_where може набувати значення однієї з трьох стандартних констант: SEEK_SET (=0) – відлік від початку файлу; SEEK_CUR (=1) – відлік від поточної позиції у файлі; SEEK_END (=2) – відлік від кінця файлу. Повертає 0, якщо позиція успішно встановлена.

Слайд 7

Функції прямого введення-виведення в мові С

size_t fread (void* ptr, size_t size,

size_t num, FILE* filename);
Читає із файлу filename в масив ptr не більше num елементів розміру size. Повертає кількість успішно прочитаних елементів (вона може бути менше заявленої).
size_t fwrite (void* ptr, size_t size,
size_t num, FILE* filename);
Записує у файл filename із масиву ptr num елементів розміру size. Повертає кількість успішно записаних елементів.

Слайд 8

Прості операції з файлами введення в С++.

Припустимо, що програма має читати інформацію із

файлу. Для цього необхідно виконати наступні кроки:
Створити екземпляр класу ifstream, для керування потоком введення:
ifstream ifile;
Поставити цей екземпляр у відповідність конкретному файлу:
ifile.open (“D:\\in.txt”);
(Кроки 1 та 2 можна замінити створенням екземпляру з допомогою конкретного конструктора:
ifstream ifile (“D:\\in.txt”, ios::in);)
Працювати із цим об'єктом так само, як із об'єктом cin.
Имя файла: Файли-в-мові-С.pptx
Количество просмотров: 73
Количество скачиваний: 0