Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекція 9 (Файли).docx
Скачиваний:
29
Добавлен:
16.05.2015
Размер:
64.85 Кб
Скачать

Виконання операцій читання і запису

Усі програми, представлені вище, виконували файлові операції над символьними рядками. В міру ускладнення ваших програм, можливо, вам знадобиться читати і писати масиви та структури. Для цього програми можуть використовувати функції read і write. При використанні функцій read і write ми повинні вказати буфер даних, в який дані будуть читатися чи з якого вони будуть записуватися, а також довжину буфера в байтах, як показано нижче:

input_file.read (buffer, sizeof (buffer)); output_file.write (buffer, sizeof (buffer));

Наприклад, наступна програма STRU_OUT.CPP використовує функцію write для виведення вмісту структури в файл EMPLOYEE.DAT:

# include <iostream.h> # include <fstream.h> void main (void) {  

struct employee    {  

char name [64];       int age;       float salary;    } Worker = {"Джон Дой", 33, 25000.0};    ofstream emp_file ("EMPLOYEE.DAT");    emp_file.write ((char *) & worker, sizeof (employee)); }

Функція write зазвичай отримує покажчик на символьний рядок. Символи (char *) є оператор приведення типів, який інформує компілятор, що ви передаєте покажчик на інший тип. Подібним чином наступна програма STRU_IN.CPP використовує метод read для читання з файлу інформації про службовця:

# include <iostream.h> # include <fstream.h> void main (void) {  

struct employee    {  

char name [6 4];       int age;       float salary;    } Worker = {"Джон Дой", 33, 25000.0};    ifstream emp_file ("EMPLOYEE.DAT");    emp_file.read ((char *) & worker, sizeof (employee));    cout <<worker.name <<endl;    cout <<worker.age <<endl;    cout <<worker.salary <<endl; }

Зауваження та рекомендації

  1. Заголовочний файл fstream.h визначає класи ifstream і ofstream, за допомогою яких ваша програма може виконувати операції файлового введення і виведення.

  2. Для відкриття файлу на введення або виведення ви повинні оголосити об'єкт типу ifstream або ofstream, передаючи конструктору цього об'єкта ім'я необхідного файлу.

  3. Після того як ваша програма відкрила файл для введення або виведення, вона може читати або писати дані, використовуючи оператори вилучення (>>) і вставки (<<).

  4. Ваші програми можуть виконувати введення або виведення символів у файл або з файлу, використовуючи функції get і put.

  5. Ваші програми можуть читати з файлу цілий рядок, використовуючи функцію getline.

  6. Більшість програм читають вміст файлу, поки не зустрінеться кінець файлу. Ваші програми можуть визначити кінець файлу за допомогою функції eof.

  7. Коли ваші програми виконують файлові операції, вони повинні перевіряти стан всіх операцій, щоб переконатися, що операції виконані успішно. Для перевірки помилок ваші програми можуть використовувати функцію fail.

  8. Якщо вашим програмам необхідно вводити або виводити такі дані, як структури або масиви, вони можуть використовувати методи read і write.

  9. Якщо ваша програма завершила роботу з файлом, його слід закрити за допомогою функції close.