Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лб инф передел / C++ / Алиса / Информатика / ПерваяПрограммаС.doc
Скачиваний:
57
Добавлен:
15.04.2015
Размер:
3 Мб
Скачать
☆

Как избежать ошибок выполнения

Иногда возникает ситуация, в которой операционная система не может открыть файл, указанный в функции fopen(). Причиной этому может быть отсутствие места на диске. Не исключена и возможность того, что указанный файл просто не существует. Возможна также ситуация, когда вы пытаетесь распечатать данные на принтере, а принтер не включен, или в нем отсутствует бумага.

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

if ((cdfile = fopen("CD.DAT", "w")) == NULL)

{

puts("Невозможно открыть файл");

exit();

}

NULL— это специальное значение, определенное в файле заголовков STDIO.H. Если произошла ошибка и открыть файл невозможно, система вернет значение NULL вместо адреса файловой структуры, и выполнение программы прекратится. Аналогичное условие можно внести и в инструкции печати информации на принтере: if ((cdfile = fopen("prn", "w")) == NULL) { puts("Включите принтер и запустите программу снова"); exit(); }

Замечания по Си++

В Си++ наряду со стандартными потоками ввода cin и вывода cout существует возможность создания потоков для работы с файлами. С их помощью можно осуществлять чтение и запись в файл, используя операторы >> и <<. Например, некоторые компиляторы позволяют создать поток для чтения файла, используя следующий синтаксис:

ifstream file_pointer(file_name)

Для записи в файл используется следующий синтаксис:

ofstream file_pointer(file_name)

Для выполнения этих операций может оказаться необходимым использование специальных файлов заголовков. Проверьте документацию вашего компилятора, чтобы узнать имя файла заголовков и способ его использования.

Если принтер не включен, на экране появится сообщение о том, что надо включить принтер, а затем запустить программу еще раз. Можно использовать и цикл while, с тем чтобы дать пользователю возможность исправить ошибку:

while ((cdfile = fopen("prn", "w")) == NULL)

{

puts("Включите принтер и нажмите Enter");

flag = getchar();

}

Заметьте, что в некоторых системах нет необходимости в подобных сообщениях. Если принтер не готов к печати, операционная система выведет на дисплей собственное сообщение, предлагающее пользователю либо остановить выполнение операции (abort), либо попробовать повторить ее еще раз (retry). При появлении такого сообщения следует включить принтер и нажать клавишу R, чтобы повторить попытку вывода на печать.

Соседние файлы в папке Информатика