Файли в мові С Для відкриття файлу використовується

Скачать презентацию Файли в мові С Для відкриття файлу використовується Скачать презентацию Файли в мові С Для відкриття файлу використовується

21410-lec_8.ppt

  • Количество слайдов: 9

>Файли в мові С Для відкриття файлу використовується стандартна функція: FILE* fopen ( char* Файли в мові С Для відкриття файлу використовується стандартна функція: FILE* fopen ( char* filename, char* mode); filename – стрінг, який містить повне ім'я файлу, mode – стрінг, який визначає режим роботи із файлом: "r" – відкрити існуючий файл для введення з нього (читання); "w" – створити новий файл або відкрити (і звільнити від попереднього вмісту) існуючий файл для виводу (запису) у його початок; "a" – створити новий файл для виводу або відкрити існуючий файл для виводу в кінець файлу; "r+" – відкрити існуючий файл для оновлення (тобто читання й запису), яке буде здійснюватись з його початку; "w+" – створити новий файл або відкрити існуючий файл для оновлення, яке буде здійснюватись з його початку; "a+" – створити новий файл або відкрити існуючий файл і підстроїтись у його кінець для оновлення. Ця функція повертає вказівник на структуру FILE, яка зберігає всю інформацію про файл.

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

>Деякі стандартні функції для роботи з файлами в мові С  1. int fgetc Деякі стандартні функції для роботи з файлами в мові С 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, якщо сталась помилка.

>5.  int fprintf (FILE *fp , char *format, …);  Ця функція здійснює 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

>Стандартна послідовність дій для роботи з файлом виглядає наступним чином: FILE *fp_in = Стандартна послідовність дій для роботи з файлом виглядає наступним чином: FILE *fp_in = fopen ("G:\\in.txt", "r"); if (fp_in) // якщо файл існує { // тут працюємо з файлом fclose (fp_in); } else // якщо файл не існує fprintf (stderr, "\n Error!!!");

>Файли прямого доступу  Прямий (direct access) (на відміну від послідовного) доступ до Файли прямого доступу Прямий (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, якщо позиція успішно встановлена.

>Функції прямого введення-виведення  в мові С  size_t fread (void* ptr, size_t size, Функції прямого введення-виведення в мові С 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. Повертає кількість успішно записаних елементів.

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

>Прості операції з файлами виведення в С++. Припустимо, що програма має виводити інформацію у Прості операції з файлами виведення в С++. Припустимо, що програма має виводити інформацію у файл. Для цього необхідно виконати наступні кроки: Створити екземпляр класу ofstream, для керування потоком виведення: ofstream ofile; Поставити цей екземпляр у відповідність конкретному файлу: ofile.open (“D:\\in.txt”); (Кроки 1 та 2 можна замінити створенням екземпляру з допомогою конкретного конструктора: ofstream ofile (“D:\\in.txt”, ios::out);) Працювати із цим об'єктом так само, як із об'єктом cout.