Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мищишин електронка.doc
Скачиваний:
1
Добавлен:
08.12.2018
Размер:
1.04 Mб
Скачать

Void main(void)

{

ifstream input_file("BOOKINFO.DAT");

char letter;

while (! input_file.eof( ))

{

letter = input_file.get( ) ;

cout << letter;

}

}

Перевірка помилок при виконанні файлових операцій

Якщо ви відкриваєте файл для введення, програма повинна перевірити, що файл існує. Аналогічно, якщо програма пише дані у файл, необхідно переконатися, що операція пройшла успішно (наприклад, відсутність місця на диску, швидше за все, перешкодить записам даних). Щоб допомогти програмам стежити за помилками, можна використати функцію fail файлового об'єкту. Якщо в процесі файлової операції помилок не було, функція поверне (0). Однак, якщо зустрілася помилка, функція fail поверне істину (1). Наприклад:

ifstream input_file("FILENAME.DAT");

if (input_file.fail( ))

{

cout << "Помилка відкриття FILENAME.EXT" << endl;

exit(1);

}

Таким чином, програми повинні переконатися, що операції читання і запису пройшли успішно. Наступна програма TEST_ALL.CPP використовує функцію fail для перевірки різних помилкових ситуацій:

Void main(void)

{

char line[256];

ifstream input_file("BOOKINFO.DAT");

if (input_file.fail( ))

сеrr << "Помилка відкриття BOOKINFO.DAT" << endl; else

{

while ((! input_file.eof( )) && (! input_file.fail( )))

{

input_file.getline(line, sizeof(line));

if (! input_file.fail( ))

cout << line << endl;

}

}

}

Закриття файлу, якщо він більше не потрібен

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

input_file.close( );

Коли ви закриваєте файл, всі дані, які програма зберігала у ньому, записуються на диск, і обновлюється каталог для цього файлу.

Керування відкриттям файлу

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

Ifstream output_file("filename.Ext", ios::app);

В даному випадку параметр ios::app указує режим відкривання файлу.

Деякі значення режимів відкривання подані нижче:

ios::app // відкриває файл в режимі додавання, розташовуючи

файловий вказівник у кінці файлу;

ios::ate // розташовує файловий вказівник у кінці файлу;

ios::in // указує відкрити файл для введення;

ios::nocreate // якщо вказаний файл не існує, не створювати файл і

повернути помилку (1);

ios::noreplace // якщо файл існує, операція відкриття повинна бути

перервана і повернута помилка (1);

ios::out //указує відкрити файл для виведення;

ios::trunc // перезаписує вміст файлу.

Наступний запис відкриває файл для виведення, використовуючи режим ios::noreplace, щоб запобігти перезапису існуючого файлу: