Файлы. Общая концепция организации ввода-вывода данных в С++. Средства класса ios, обеспечивающие точную настройку вывода, страница 7

Благодаря объектам  cin  и cout становятся доступными и методы (функции-члены) соответствующих классов.

Средства класса ios, обеспечивающие точную настройку вывода

Функции-члены классе ios:

функция-член

назначение

flags

устанавливает или читает флаги формата

setf

устанавливает флаги формата

unsetf

сбрасывает флаги формата

width

устанавливает ширину ввода

fill

устанавливает или читает символ-заполнитель

precision

устанавливает или читает точность

Функция-член flags

устанавливает и считывает флаги формата. Существуют две перегруженные версии этой функции:

long flags() const;   //возвращает комбинацию форматных флагов

long flags(long iFlags); // устанавливает новую комбинацию форматных флагов и

//выдает текущую комбинацию форматных флагов

//несколько значений параметра iFlags функции flags могут                                               // объединяться в аргументе операцией | (поразрядного или)

Значения параметра iFlags функции- члена flags:

значения параметра iFlags

назначение

ios::dec

форматирует выводимые числа как десятичные (установка по умолчанию);

ios::fixed

выводит значения с плавающей точкой в фиксированном формате

ios::hex

форматирует выводимые числа как шестнадцатеричные

ios::internal

вставляет символ-заполнитель после символа основания системы счисления или символа знака

ios::left

выравнивает вывод влево (использует символ заполнения – по умолчанию «пробел»)

ios::oct

форматирует выводимые числа как восьмеричные

ios::right

выравнивает вывод вправо (использует символ заполнения ) – это установка по умолчанию

ios::scientific

выводит числа с плавающей точкой, используя экспоненциальную форму (научный формат)

ios::showbase

выводит приставки с индикатором основания системы счисления (0 – для восьмеричной, 0х – для шестнадцатеричной)

ios::showpoint

форматирует числа с плавающей точкой, указывая в них десятичную точку и усекая нули в конце (использует установленную точность)

ios::showpos

выводит знак + с положительными числами

ios::skipws

пропускает на вводе пробельные знаки

ios::stdio

закрывает буферы stdio и stderr после каждой вставки

ios::untilbuf

закрывает буферы потока вывода после каждой вставки

ios::uppercase

при выводе использовать символы верхнего регистра

Примеры:

cout.flags (ios::hex | ios::uppercase);

cout <<15 << “\n”;                              //выводит F

cout.flags (ios:: oct | ios:: showbase);

cout <<8 << “\n”;                                 //выводит 010

cout.flags (ios:: hex | ios:: uppercase| ios::showbase );

cout <<15 << “\n”;                                 //выводит 0xF

int nNum=16;

double fx=355.113;

long iFlags ;

cout.flags (ios::dec);

cout <<nNum << “(base 10) =”;                              //16 (base 10)=

cout.flags (ios::hex | ios:: showbase);

cout <<nNum << “(base 16) =”;                              //0x10 (base 16)=

cout.flags (ios:: oct | ios:: showbase);

cout << nNum << “(base 8) \n”;                              //020 (base 8)

cout.flags (ios:: scientific | ios:: showpos);

cout << “floating-point number is”<< fX<< “\n”; //floating-point number is +3.551130e+002

cout.flags (ios:: fixed | ios:: showpos);