На головну

Контроль операцій обробки файлів

  1.  GetRight - програма для скачування файлів
  2.  I. Контрольні нормативи для оцінки силової підготовленості студентів вузів
  3.  I. ПРИЙОМИ ИЗМЕРЕНИЙ І СТАТИСТИЧНІ СПОСОБИ ОБРОБКИ ЇХ РЕЗУЛЬТАТІВ В психологічних дослідженнях
  4.  I. Проведення статистичної обробки результатів дослідження
  5.  I. Файлові структури, використовувані для зберігання даних в БД
  6.  III. Діагностичні дослідження і лікувально-профілактичні обробки свиней в період карантину.
  7.  III. Методичні вказівки для студентів заочної форми навчання з виконання контрольної роботи

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

Стан потоку оцінюється битами класу ios:

goodbit - встановлюється, якщо операція пройшла успішно;

eofbit - встановлюється, якщо більше немає символів для читання, т. е. кінець файлу;

failbit - встановлюється, якщо операція читання / запису закінчилася з помилкою; потік можна використовувати після скидання біта;

badbit - встановлюється, якщо операція читання / запису закінчилася помилкою; можлива втрата символів, але можна спробувати виправити, скинувши біт;

hardbit - встановлюється при непоправною помилку.

Відновлення потоку, т. Е. Очищення бітів помилки, здійснюється функцією clear:

p.clear (n); , Де n - або код біта (0,1,2,4,8), або його мнемонічне позначення; при n = 0 відбувається очищення всіх бітів помилок.

Стан потоку можна перевірити різними способами. Перевірка стану потоку з виявленням конкретної помилки виконується функцією rdstate, яка повертає код біта помилки. приклад:

switch (p.rdstate ()) // p - потік

{

case ios :: goodbit: // операція успішна, продовження програми

break;

case ios :: eofbit: // кінець файлу, продовження програми

break;

case ios :: failbit: // помилка, відновлення потоку

break;

case ios :: badbit: // помилка, спроба відновлення потоку

break;

case ios :: hardbit: // фатальна помилка, вихід з програми

break;

}

Альтернативним, другим способом перевірки стану потоку є використання функцій класу ios:

good () - повертає істину, якщо встановлений goodbit (немає помилок); повертає брехня (нуль), якщо біт не встановлений;

eof () - повертає істину, якщо встановлений eofbit (кінець файлу); повертає брехня, якщо біт не встановлений;

fail () - повертає істину, якщо встановлений failbit, badbit або hardbit; повертає брехня, якщо біти не встановлені;

bad () - повертає істину, якщо встановлений badbit або hardbit; повертає брехня, якщо біти не встановлені.

приклади:

if (! p.good ()) if (p.fail ()) while (! p.eof ())

{{{

cerr << "Помилка ..."; cerr << "Помилка ..."; // Нет кінця файлу

exit (-1); // Вихід exit (-1); // вихід ...

}}}

Зручний третій спосіб перевірки стану потоку поданням імені потоку або операції читання / запису у вигляді логічного виразу в операторах if, for, while, do-while.

приклади:

if (p) if (! p)

{{

// Продовження програми cerr << "Помилка ...";

... Exit (-1); // вихід

}}

if (p.read ((char *) & z, sizeof (z))) if (! p.read ((char *) & z, sizeof (z)))

{{

// Продовження програми cerr << "Помилка читання ...";

... Exit (-1); // вихід з програми

}}

Ім'я потоку p і операція читання p.read мають значення не нуль (істинно), якщо немає помилки, і нуль (помилково), якщо є помилка.

Контрольні питання

1. Які є способи позначення коментарів?

2. Що таке директива препроцесора?

3. Що таке керуюча послідовність?

4. Що таке масив?

5. Що таке покажчик?

6. Чим відрізняються посилання від покажчиків?

7. Що таке структура?

8. Що таке перерахування?

9. Що таке операції вилучення (>>) і вставки (<<)?

10. Які є способи форматування вводу / виводу?

11. Які засоби обробки файлів має бібліотека потоків введення / виведення fstream.h?

 




 компонентні технології |  структура програми |  Визначення, прототип і виклик функції |  Оператори |  Базові типи даних |  Перетворення і перейменування типів |  операції |  Покажчики |  Структури, об'єднання, перерахування |  Засоби управління екраном і клавіатурою |

© um.co.ua - учбові матеріали та реферати