Информатика и технология программирования

         

Форматирование данных в потоках


Флаги форматирования - битовые поля в переменной типа 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(); // Чтение маски флагов



Содержание раздела