Форматирование данных в потоках
Флаги форматирования - битовые поля в переменной типа long .
enum ios::io_format
{
skipws= 0x0001, // Игнорирование пробелов при вводе
left = 0x0002, // Выравнивание по левой границе поля
right = 0x0004, // Выравнивание по правой границе поля
internal= 0x0008, // Знак выводится по левому краю поля,
// само число выравнивается по правому
dec = 0x0010, // Десятичная система счисления
oct = 0x0020, // Восьмеричная система счисления
hex = 0x0040, // Шестандатеричная система счисления
showbase= 0x0080, // Вывод индикатора системы счисления
// (0... или 0x...)
showpoint= 0x0100, // Обязательный вывод десятичной точки
uppercase= 0x0200, // Верхний регистр символов:
// 0X00FF, 0.5E2
showpos= 0x0400, // Обязательный вывод "+"
scientific= 0x0800, // Обязательный вывод порядка числа
fixed = 0x1000, // Вывод с фиксированной точкой nnn.mmm
unitbuf= 0x2000, // Очистка буфера после каждого вывода
stdio = 0x4000 // Очистка потоков stdout, stderr
// после каждого вывода (flush)
};
Функции форматирования в классе ios :
long flags(); // Чтение флагов форматирования
long flags(long); // Присваивание флагов форматирования
// (нулевых и единичных)
// (возвращает старые значения флагов)
long setf(long); // Установка флагов форматирования
// (установленных в маске в 1)
long unsetf(long); // Сброс флагов форматирования
// (установленных в маске в 1)
long setf(long,long); // Установка флагов форматирования
// из первого параметра по маске
// второго параметра
char fill(); // Чтение символа заполнения (пробел)
char fill(char); // Установка символа заполнения
int precision(); // Чтения точности представления
// float и double
int precision(int); // Установка точности представления
int width(); // Чтение текущей ширины поля
int width(int); // Установка текущей ширины поля
static long bitalloc(); // Чтение маски флагов