std::ios_base:: setf
From cppreference.net
|
fmtflags setf
(
fmtflags flags
)
;
|
(1) | |
|
fmtflags setf
(
fmtflags flags, fmtflags mask
)
;
|
(2) | |
Устанавливает флаги форматирования в указанные настройки.
1)
Устанавливает флаги форматирования, определяемые
flags
. Фактически выполняется следующая операция
fl
=
fl
|
flags
, где
fl
определяет состояние внутренних флагов форматирования.
2)
Сбрасывает флаги форматирования, указанные в
mask
, и устанавливает сброшенные флаги в значения, заданные
flags
. Фактически выполняется следующая операция:
fl
=
(
fl
&
~mask
)
|
(
flags
&
mask
)
где
fl
определяет состояние внутренних флагов форматирования.
Содержание |
Параметры
| flags, mask | - | новые настройки форматирования. mask определяет, какие флаги могут быть изменены, flags определяет, какие из изменяемых флагов должны быть установлены (остальные будут сброшены). Оба параметра могут быть комбинацией констант флагов форматирования |
Флаги форматирования
| Константа | Объяснение |
| 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 <iomanip> #include <iostream> #include <numbers> int main() { const double PI = std::numbers::pi; const int WIDTH = 15; std::cout.setf(std::ios::right); // эквивалент: cout << right; std::cout << std::setw(WIDTH / 2) << "radius" << std::setw(WIDTH) << "circumference" << '\n'; std::cout.setf(std::ios::fixed); // эквивалент: cout << fixed; for (double radius = 1; radius <= 6; radius += 0.5) std::cout << std::setprecision(1) << std::setw(WIDTH / 2) << radius << std::setprecision(2) << std::setw(WIDTH) << (2 * PI * radius) << '\n'; }
Вывод:
radius circumference
1.0 6.28
1.5 9.42
2.0 12.57
2.5 15.71
3.0 18.85
3.5 21.99
4.0 25.13
4.5 28.27
5.0 31.42
5.5 34.56
6.0 37.70
Смотрите также
|
управляет флагами формата
(public member function) |
|
|
очищает определённый флаг формата
(public member function) |