ВУЗ:
Составители:
Рубрика:
74
4. Определить функцию типа *f (fmanip), принимающую поток и
параметры манипулятора и возвращающую поток. Эта функция собствен-
но и выполняет форматирование. Например,
ostream& fmanip(ostream& s,int w,int n,char fill)
{s.width(w);
s.flags(ios::fixed);
s.precision(n);
s.fill(fill);
return s;}
5. Определить собственно манипулятор (wp) как функцию, прини-
мающую параметры манипулятора и возвращающую объект my_manip,
поле f которого содержит указатель на функцию fmanip. Например,
my_man wp(int w,int n,char fill)
{return my_man(fmanip,w,n,fill);}
Для создания пользовательских манипуляторов с параметрами мож-
но использовать макросы, которые содержатся в файле <iomanip.h>:
OMANIP(int)
IMANIP(int)
IOMANIP(int)
Состояние потока
Каждый поток имеет связанное с ним состояние. Состояния потока
описываются в классе ios в виде перечисления enum.
public:
enum io_state{
goodbit, //нет ошибки 0Х00
eofbit,//конец файла 0Х01
failbit,//последняя операция не выполнилась 0Х02
badbit,//попытка использования недопустимой операции 0Х04
hardfail//фатальная ошибка 0Х08
};
Флаги, определяющие результат последней операции с объектом ios,
содержатся в переменной state. Получить значение этой переменной можно
с помощью функции int rdstate().
Кроме того, проверить состояние потока можно следующими функ-
циями:
int bad(); 1, если badbit или hardfail
int eof(); 1, если eofbit
int fail(); 1, если failbit, badbit или hardfail
int good(); 1, если goodbit
Страницы
- « первая
- ‹ предыдущая
- …
- 70
- 71
- 72
- 73
- 74
- …
- следующая ›
- последняя »