std::ios_base::setf(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’… std::ios_base::setf(3) πŸ’…

hey bestie, welcome to the C++ Standard Libary manual β€” yep, Libary, that’s the spelling, and we’re just gonna roll with it πŸ’€. this is the page for std::ios_base::setf, and it’s lowkey iconic because it’s all about formatting flags. no cap.


✨ NAME ✨

std::ios_base::setf - std::ios_base::setf


🌸 Synopsis 🌸

fmtflags setf( fmtflags flags );                (1)
fmtflags setf( fmtflags flags, fmtflags mask ); (2)

Sets the formatting flags to specified settings. okay so here’s the tea πŸ«–:

  1. Sets the formatting flags identified by flags. Effectively, the following operation is performed: fl = fl | flags, where fl defines the state of internal formatting flags.
  2. Clears the formatting flags under mask, and sets the cleared flags to those specified by flags. Effectively, the following operation is performed: fl = (fl & ~mask) | (flags & mask), where fl defines the state of internal formatting flags.

πŸŽ€ Parameters πŸŽ€

  • flags, mask β€” new formatting setting. mask defines which flags can be altered, and flags defines which flags of those to be altered should be set (others will be cleared). Both parameters can be a combination of the formatting flags constants.

🌈 Formatting flags 🌈

  • dec β€” use decimal base for integer I/O: see std::dec.
  • oct β€” use octal base for integer I/O: see std::oct.
  • hex β€” use hexadecimal base for integer I/O: see std::hex.
  • basefield β€” dec | oct | hex. Useful for masking operations.
  • left β€” left adjustment (adds fill characters to the right): see std::left.
  • right β€” right adjustment (adds fill characters to the left): see std::right.
  • internal β€” internal adjustment (adds fill characters to the internal designated point): see std::internal.
  • adjustfield β€” left | right | internal. Useful for masking operations.
  • scientific β€” generate floating point types using scientific notation, or hex notation if combined with fixed: see std::scientific.
  • fixed β€” generate floating point types using fixed notation, or hex notation if combined with scientific: see std::fixed.
  • floatfield β€” scientific | fixed. Useful for masking operations.
  • boolalpha β€” insert and extract bool type in alphanumeric format: see std::boolalpha.
  • showbase β€” generate a prefix indicating the numeric base for integer output, require the currency indicator in monetary I/O: see std::showbase.
  • showpoint β€” generate a decimal-point character unconditionally for floating-point number output: see std::showpoint.
  • showpos β€” generate a + character for non-negative numeric output: see std::showpos.
  • skipws β€” skip leading whitespace before certain input operations: see std::skipws.
  • unitbuf β€” flush the output after each output operation: see std::unitbuf.
  • uppercase β€” replace certain lowercase letters with their uppercase equivalents in certain output operations: see std::uppercase.

⭐ Return value ⭐

The formatting flags before the call to the function. they’re handing you the old flags, bestie 🫢.


πŸ’» Example πŸ’»

// Run this code

#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';
}

✨ Output ✨

 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

πŸ‘€ See also πŸ‘€

  • flags β€” manages format flags (public member function).
  • unsetf β€” clears specific format flag (public member function).

that’s the whole page, periodt πŸ’… β€” from the C++ Standard Libary manual, source http://cppreference.com, dated 2024.06.10 🫢

πŸ“¦ where this page comes from