Реагування на помилки

Програма 26.10 показує найбільш зручний спосіб обробки помилок. Всі дискові операції перевіряються після їх виконання. Якщо виникла помилка, виводиться повідомлення про це і програма завершує свою роботу. В програмі використовується раніше описана техніка, яка полягає в перевірці значення, що повертається з об’єкту, і визначення статусу його помилки. Програма відкриває вихідний потоковий об’єкт, записує весь масив цілих чисел єдиним викликом write() та закриває об’єкт. Потім відкриває вхідний потоковий об’єкт і зчитує масив викликом функції read().

Далі приведений текст програми 26.10.

#include<fstream>

#include<iostream>

#include<conio>

using namespace std;

#include<process.h>

const int MAX=1000;

int buff[MAX];

 

//////////////

int main()

{int j=0;

for(j=0;j<MAX;j++) //заповнити буфер даними

buff[j]=j;

ofstream os; //створити вхідний потік

os.open(“edata.dat”,ios::trunc|ios::binary);

if(!os)

{cerr<<”Nemozlyvo vidkryty vhidnyj file\n”;getch();exit(1);}

cout<<”Write…\n”;

//записати вміст буферу

os.write(reinterpret_cast<char*>(buff),MAX*sizeof(int));

if(!os)

{cerr<<”Zapys v file nemozlyvyj\n”;getch();exit(1);}

os.close(); //закриття потоку

for(j=0;j<MAX;j++)

buff[j]=0; //очистка буфера

ifstream is;

is.open(“udata.dat”,ios::binary); //імена edat.dat i udata.dat відрізняються

if(!is)

{cerr<<”Nemozlyvo vidkryty vhidnyj file\n”;getch();exit(1);}

cout<<”Ide 4ytanna…\n”;//читання файлу

is.read(reinterpret_cast<char*>(buff),MAX*sizeof(int));

if(!is)

{cerr<<”Nemozlyvo 4ytaty file\n”;getch();exit(1);}

for(j=0;j<MAX;j++)

if(buff[j]!=j)

{cerr<<”\nDani nekorektni\n”;getch();exit(1);}

cout<<”\nDani korektni\n”;

getch();

return 0;

}

 

Програма 26.10

 

 








Дата добавления: 2015-08-26; просмотров: 563;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.