Форматирование ввода и вывода определяется различными флагами состояний формата, перечисленными в классе ios. Эти состояния
определяются битами числа типа long int следующим образом:
public:
enum {
skipws = 0x0001, // пропуск пробельного символа на
// вводе
left = 0x0002, // вывод с левым выравниванием
right = 0x0004, // вывод с правым выравниванием
internal = 0x0008, // заполнитель после знака или
// указателя системы счисления
dec = 0x0010, // десятичное преобразование
oct = 0x0020, // восьмиричное преобразование
hex = 0x0040, // шестнадцатиричное преобразование
showbase = 0x0080, // показать на выходе указатель
// системы счисления
showpoint = 0x0100, // показать позицию десятичной точки
// (на выходе)
uppercase = 0x0200, // вывод шестнадцатиричных значений
// буквами верхнего регистра
showpos = 0x0400, // показать знак "+" для
// положительных чисел
scientific = 0x0800, // использовать запись чисел с плава-
// ющей точкой с выводом экспоненты Е
// например, 12345E2
fixed = 0x1000, // использовать запись чисел с плава-
// ющей точкой типа 123.45
unitbuf = 0x2000, // сброс на диск всех потоков
// после вставки
stdio = 0x4000, // сброс на диск stdout и stderr после
// вставки
};
Эти флаги читаются и устанавливаются функциями-элементами
flags, setf и unsetf.