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
См. также
| управляет флагами форматирования (открытая функция-член) |
|
| устанавливает указанный флаг форматирования (открытая функция-член) |
|
| сбрасывает указанный флаг форматирования (открытая функция-член) |
|
| изменяет систему счисления для целочисленного ввода-вывода (функция) |
|
| изменяет символ заполнения (шаблон функции) |
|
|
(C++11)(C++11) | изменяет формат чисел с плавающей точкой при вводе-выводе (функция) |
| управляет выводом префикса, указывающего систему счисления (функция) |
|
| переключает представление логических значений между текстовым и числовым (функция) |
|
управляет выводом знака + для неотрицательных чисел (функция) |
|
| управляет обязательным наличием десятичной точки в представлении чисел с плавающей точкой (функция) |
|
| управляет сбросом буфера вывода после каждой операции (функция) |
|
| управляет пропуском начальных пробельных символов при вводе (функция) |
|
| управляет использованием прописных символов в некоторых форматах вывода (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/ios_base/fmtflags