std::ios_base::setf
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); // equivalent: cout << right;
std::cout << std::setw(WIDTH / 2) << "radius"
<< std::setw(WIDTH) << "circumference" << '\n';
std::cout.setf(std::ios::fixed); // equivalent: 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
См. также
| управляет флагами форматирования (открытая функция-член) |
|
| сбрасывает указанный флаг форматирования (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/ios_base/setf