I/O manipulators | ||||
Print functions(C++23) | ||||
C-style I/O | ||||
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) |
Floating-point formatting | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Integer formatting | |||||||||||||||||||||||||||||||
Boolean formatting | |||||||||||||||||||||||||||||||
Field width and fill control | |||||||||||||||||||||||||||||||
Other formatting | |||||||||||||||||||||||||||||||
Whitespace processing | |||||||||||||||||||||||||||||||
Output flushing | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Status flags manipulation | |||||||||||||||||||||||||||||||
Time and money I/O | |||||||||||||||||||||||||||||||
Quoted manipulator | |||||||||||||||||||||||||||||||
(C++14) |
Defined in header <iomanip> | ||
/*unspecified*/ setprecision(int n); | ||
When used in an expressionout<< setprecision(n) orin>> setprecision(n), sets theprecision
parameter of the streamout orin to exactlyn.
Contents |
n | - | new value for precision |
An object of unspecified type such that
where the functionf is defined as:
void f(std::ios_base& str,int n){// set precision str.precision(n);}
#include <iomanip>#include <iostream>#include <limits>#include <numbers> int main(){constexprlongdouble pi{std::numbers::pi_v<longdouble>}; constauto default_precision{std::cout.precision()};constexprauto max_precision{std::numeric_limits<longdouble>::digits10+1}; std::cout<<"default precision: "<< default_precision<<'\n'<<"maximum precision: "<< max_precision<<"\n\n""precision: pi:\n"; for(int p{0}; p<= max_precision;++p)std::cout<<std::setw(2)<< p<<" "<< std::setprecision(p)<< pi<<'\n'; std::cout<< std::setprecision(default_precision);// restore defaults}
Output:
default precision: 6maximum precision: 19 precision: pi: 0 3 1 3 2 3.1 3 3.14 4 3.142 5 3.1416 6 3.14159 7 3.141593 8 3.1415927 9 3.1415926510 3.14159265411 3.141592653612 3.1415926535913 3.1415926535914 3.141592653589815 3.1415926535897916 3.14159265358979317 3.141592653589793218 3.1415926535897932419 3.141592653589793239
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR | Applied to | Behavior as published | Correct behavior |
---|---|---|---|
LWG 183 | C++98 | setprecision could only be used with streamsof typestd::ostream orstd::istream | usable with any character stream |
(C++11)(C++11) | changes formatting used for floating-point I/O (function)[edit] |
manages decimal precision of floating point operations (public member function of std::ios_base )[edit] |