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/w/cpp/io/ios_base/setf