Spec-Zone.ru › C++

std::ios_base::fmtflags

typedef /*implementation defined*/ fmtflags;
static constexpr fmtflags dec = /*implementation defined*/
static constexpr fmtflags oct = /*implementation defined*/
static constexpr fmtflags hex = /*implementation defined*/
static constexpr fmtflags basefield = dec | oct | hex;
static constexpr fmtflags left = /*implementation defined*/
static constexpr fmtflags right = /*implementation defined*/
static constexpr fmtflags internal = /*implementation defined*/
static constexpr fmtflags adjustfield = left | right | internal;
static constexpr fmtflags scientific = /*implementation defined*/
static constexpr fmtflags fixed = /*implementation defined*/
static constexpr fmtflags floatfield = scientific | fixed;
static constexpr fmtflags boolalpha = /*implementation defined*/
static constexpr fmtflags showbase = /*implementation defined*/
static constexpr fmtflags showpoint = /*implementation defined*/
static constexpr fmtflags showpos = /*implementation defined*/
static constexpr fmtflags skipws = /*implementation defined*/
static constexpr fmtflags unitbuf = /*implementation defined*/
static constexpr fmtflags uppercase = /*implementation defined*/

Задает доступные флаги форматирования. Это тип битовой маски. Определены следующие константы:

Константа Пояснение
dec использовать десятичную систему счисления для целочисленного ввода-вывода: см. std::dec
oct использовать восьмеричную систему счисления для целочисленного ввода-вывода: см. std::oct
hex использовать шестнадцатеричную систему счисления для целочисленного ввода-вывода: см. std::hex
basefield dec | oct | hex. Полезно для операций маскирования
left выравнивание по левому краю (добавляет символы заполнения справа): см. std::left
right выравнивание по правому краю (добавляет символы заполнения слева): см. std::right
internal внутреннее выравнивание (добавляет символы заполнения в указанную внутреннюю позицию): см. std::internal
adjustfield left | right | internal. Полезно для операций маскирования
scientific выводить числа с плавающей точкой в научной нотации или в шестнадцатеричной нотации при сочетании с fixed: см. std::scientific
fixed выводить числа с плавающей точкой в фиксированной нотации или в шестнадцатеричной нотации при сочетании с scientific: см. std::fixed
floatfield scientific | fixed. Полезно для операций маскирования
boolalpha вставлять и извлекать значения типа bool в буквенно-цифровом формате: см. std::boolalpha
showbase выводить префикс, указывающий систему счисления, для целых чисел; требовать указание валюты при денежном вводе-выводе: см. std::showbase
showpoint всегда выводить символ десятичной точки для чисел с плавающей точкой: см. std::showpoint
showpos выводить символ + для неотрицательных чисел: см. std::showpos
skipws пропускать начальные пробельные символы перед некоторыми операциями ввода: см. std::skipws
unitbuf сбрасывать буфер вывода после каждой операции вывода: см. std::unitbuf
uppercase заменять некоторые строчные буквы прописными при выполнении некоторых операций вывода: см. std::uppercase

Пример

В следующем примере показано несколько способов вывести один и тот же результат.

#include <iostream>

int main()
{
    const int num = 150;

    // using fmtflags as class member constants:
    std::cout.setf(std::ios_base::hex, std::ios_base::basefield);
    std::cout.setf(std::ios_base::showbase);
    std::cout << num << '\n';

    // using fmtflags as inherited class member constants:
    std::cout.setf (std::ios::hex, std::ios::basefield);
    std::cout.setf (std::ios::showbase);
    std::cout << num << '\n';

    // using fmtflags as object member constants:
    std::cout.setf(std::cout.hex, std::cout.basefield);
    std::cout.setf(std::cout.showbase);
    std::cout << num << '\n';

    // using fmtflags as a type:
    std::ios_base::fmtflags ff;
    ff = std::cout.flags();
    ff &= ~std::cout.basefield;   // unset basefield bits
    ff |= std::cout.hex;          // set hex
    ff |= std::cout.showbase;     // set showbase
    std::cout.flags(ff);
    std::cout << num << '\n';

    // not using fmtflags, but using manipulators:
    std::cout << std::hex << std::showbase << num << '\n';
}

Вывод:

0x96
0x96
0x96
0x96
0x96

См. также

flags
управляет флагами форматирования
(открытая функция-член)
setf
устанавливает указанный флаг форматирования
(открытая функция-член)
unsetf
сбрасывает указанный флаг форматирования
(открытая функция-член)
setbase
изменяет систему счисления для целочисленного ввода-вывода
(функция)
setfill
изменяет символ заполнения
(шаблон функции)
fixedscientifichexfloatdefaultfloat
(C++11)(C++11)
изменяет формат чисел с плавающей точкой при вводе-выводе
(функция)
showbasenoshowbase
управляет выводом префикса, указывающего систему счисления
(функция)
boolalphanoboolalpha
переключает представление логических значений между текстовым и числовым
(функция)
showposnoshowpos
управляет выводом знака + для неотрицательных чисел
(функция)
showpointnoshowpoint
управляет обязательным наличием десятичной точки в представлении чисел с плавающей точкой
(функция)
unitbufnounitbuf
управляет сбросом буфера вывода после каждой операции
(функция)
skipwsnoskipws
управляет пропуском начальных пробельных символов при вводе
(функция)
uppercasenouppercase
управляет использованием прописных символов в некоторых форматах вывода
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/ios_base/fmtflags

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API