ВУЗ:
Составители:
Рубрика:
184
ции о состоянии операции ввода-вывода. Во-первых, можно вызвать
функцию rdstate(), имеющую прототип iostate rdstate() const.
Функция возвращает состояние операции ввода-вывода. Во-
вторых, можно воспользоваться одной из следующих функций-членов:
int good() const;
int eof() const;
int fail() const;
int bad() const;
Каждая из этих функций возвращает 1, если установлен соответ-
ствующий бит состояния (точнее, функция fail() возвращает 1, если ус-
тановлен бит failbit или badbit).
Если прочитано состояние, которое сигнализирует об ошибке, его
можно сбросить с помощью функции clear ():
void clear(iostate state = ios::goodbit);
Установить нужное состояние можно с помощью функции
setsfate():
void setstate(iostate state);
Кроме перечисленных функций, класс ios содержит функцию
приведения типа operator void*() const; (она возвращает NULL, если
установлен бит badbit) и перегруженный оператор логического от-
рицания
int operator !() const; (он возвращает 1, если установлен бит badbit). Это
позволяет сравнивать выражения, в которые входит поток или его отри-
цание с нулем, то есть писать выражения вида:
while(!strm.eof()) {
... }
Следующий пример иллюстрирует получение информации о со-
стоянии ввода-вывода.
#include <iostream.h>
#include <fstream.h>
int main(int argc, char* argv[]) {
char c;
if (argc > 1){
ifstream ifs(argv[1]);
if (!ifs){ cout << ”Файл не открыт\n”; return 1; }
Страницы
- « первая
- ‹ предыдущая
- …
- 180
- 181
- 182
- 183
- 184
- …
- следующая ›
- последняя »