Учимся программировать на языке C++

ПРОВЕРКА ОШИБОК ПРИ ВЫПОЛНЕНИИ ФАЙЛОВЫХ ОПЕРАЦИЙ


Программы, представленные до настоящего момента, предполагали, что во время файловых операций В/В не происходят ошибки. К сожалению, это сбывается не всегда. Например, если вы открываете файл для ввода, ваши программы должны проверить, что файл существует. Аналогично, если ваша программа пишет данные в файл, вам необходимо убедиться, что операция прошла успешно (к примеру, отсутствие места на диске, скорее всего, помешает записи данных). Чтобы помочь вашим программам следить за ошибками, вы можете использовать функцию fail файлового объекта. Если в процессе файловой операции ошибок не было, функция возвратит ложь (0). Однако, если встретилась ошибка, функция fail возвратит истину. Например, если программа открывает файл, ей следует использовать функцию fail, чтобы определить, произошла ли ошибка, как это показано ниже:

ifstream input_file("FILENAME.DAT");

if (input_file.fail())

{

cerr "Ошибка открытия FILENAME.EXT" endl;

exit(1);

}

Таким образом, программы должны убедиться, что операции чтения и записи прошли успешно. Следующая программа TEST_ALL.CPP использует функцию fail для проверки различных ошибочных ситуаций:

#include iostream.h

#include fstream.h

void main(void)

{

char line[256] ;

ifstream input_file("BOOKINFO.DAT") ;

if (input_file.fail()) cerr "Ошибка открытия BOOKINFO.DAT" endl;

else

{

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

{

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

if (! input_file.fail()) cout line endl;

}

}

}



Содержание раздела