std::ios_base::setf
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Input/output library
Print functions (C++23)
Buffers
(C++23)
(C++98/26*)
(C++20)
Streams
Abstractions
File I/O
String I/O
Array I/O
(C++23)
(C++23)
(C++23)
(C++98/26*)
(C++98/26*)
(C++98/26*)
Synchronized Output
(C++20)
Types
Error category interface
(C++11)
(C++11)
std::ios_base
Member functions
Formatting
ios_base::setf
Locales
Internal extensible array
Miscellaneous
Member classes
Member types
fmtflags setf( fmtflags flags );
(1)
fmtflags setf( fmtflags flags, fmtflags mask );
(2)
Sets the formatting flags to specified settings.
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.[edit] Parameters
flags, mask
-
new formatting setting. mask defines which flags can be altered, 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
[edit] Formatting flags
Constant
Explanation
basefield
dec | oct | hex. Useful for masking operations
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
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
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
[edit] Return value
The formatting flags before the call to the function.
[edit] 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