Namespaces
Variants

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)