Стани помилки

Стани помилки підтримуються кожним із потоків. Стани помилки зберігаються як набір бітів: eofbit, failbit і badbit. Множинні стани одержуються за допомогою операції побітового АБО.

int eof();

– повертає ненульове значення, якщо в потоці виявлений символ кінця файлу.

int bad ();

– повертає ненульове значення, якщо при виконанні деякої операції над потоком відбулася помилка. Відновлення в цьому випадку малоймовірне.

int fail();

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

int good();

– повертає ненульове значення, якщо eof(), bad() і fail() повертають нуль.

int rdstate();

– повертає поточний стан помилки.

void clear(int state);

– установлює поточний стан помилки потоку.

 

istream s;

// установлює failbit, не торкаючи інші

s.clear(ios::failbit | s.state());

 

int operator!();

operator void*();

– перша повертає ненульове значення, якщо встановлено failbit або badbit. Друга повертає нульове значення, якщо встановлено failbit або badbit.

 

if(!myStream) // operator!()

if(myStream) // operator void*()