std::ios_base::setf
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.
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 following constants: Constant | Explanation |
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|0 . 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|(scientific|fixed)|0 . 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 output operations: see std::uppercase |
|
Return value
the formatting flags before the call to the function.
Example
#include <iostream>
#include <iomanip>
const double PI = 3.1415926535;
int main()
{
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);
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
| manages format flags (public member function) |
| clears specific format flag (public member function) |