Информатика и технология программирования

         

Состояние потока


Состояние потока характеризуется элементом данных state, для которого определены флаги состояния и функции управления состоянием.


enum ios::io_state
{
goodbit = 0x00, // Ошибок нет


eofbit = 0x01, // Обнаружен признак конца файла


failbit = 0x02, // Ошибка форматирования или


// преобразования данных


badbit = 0x04, // Серьезная ошибка (буферизация,


// чтение после конца файла и т.д.)


hardfail = 0x08 // Аппаратная ошибка


};

Функции управления состоянием в класса ios :


int rdstate(); // Чтение текущего состояния


int eof(); // Проверка флага eof


int fail(); // Проверка badbit | failbit | hardfail


int bad(); // Проверка badbit | hardfail


int good(); // Проверка на отсутствие ошибок


int clear(int=0); // Установка флагов ошибки, по


// умолчанию - очистка всех


operator void*(); // Преобразование к типу void*,


// возвращает NULL, если fail()==1


int operator!(); // Возвращает 1, если fail()==1

Последние переопределения позволяют проверять наличие ошибок в потоках в виде :


if (cout) ... или if (!cout) ...



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