ВУЗ:
Составители:
Рубрика:
172
Функция flags() имеет и вторую форму, которая может использо-
ваться для установки значений флагов. Для этого используется следую-
щий прототип этой функции:
long flags(long fmtfl);
В этом случае битовый шаблон копирует fmtfl в переменную,
предназначенную для хранения флагов форматирования. Функция воз-
вращает предыдущие значения флагов. Поскольку эта форма функции
меняет весь набор флагов, она применяется редко. Вместо нее использу-
ется функция-член setf() класса ios, которая позволяет установить зна-
чение одного или нескольких флагов. Она имеет следующие прототипы:
long setf (long mask);
long setf (long fmtfl, long mask);
Первая функция-член неявно вызывает функцию flags (mask |
flags()) для установки битов, указанных параметром mask, и возвращает
предыдущие значения флагов. Второй вариант функции присваивает
битам, указанным параметром mask, значения битов параметра fmtfl, а
затем возвращает предыдущие значения флагов.
Например, следующий вызов функции setf() устанавливает для
потока cout флаги hex и uppercase:
cout.setf(ios::hex | ios::uppercase);
В качестве второго параметра функции setf() можно использовать
следующие константы, определенные в классе ios:
static const long basefield; // = dec | oct | hex
static const long adjustfield; // = left | right | internal
static const long floatfield; // = scientific | fixed
Сбросить установленные флаги можно с помощью функции-члена
unsetf() класса ios, имеющей следующий прототип:
void unsetf(long mask);
Она сбрасывает флаги, заданные параметром mask. Следующий
пример демонстрирует некоторые флаги:
double d = 1.321e9;
int n = 1024;
void main(){
// Вывести значения
cout << ”d = ” << d << ‘\n’ << ”n = ” << n << ‘\n’;
Страницы
- « первая
- ‹ предыдущая
- …
- 168
- 169
- 170
- 171
- 172
- …
- следующая ›
- последняя »