Spec-Zone.ru › C++

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

См. также

flags
управляет флагами форматирования
(открытая функция-член)
unsetf
сбрасывает указанный флаг форматирования
(открытая функция-член)

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

Spec-Zone.ru

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