cout.setf() 与 cout.precision()

来源:互联网 发布:淘宝网官网首页tao 编辑:程序博客网 时间:2024/05/27 01:14


大家都知道 :cout.setf()是用来设置位的,cout.precision()是用来设置精度的,但具体如何操作想必难倒一批人!


std::ios_base::setf   或者 std::ios::setf

 
C++
 
Input/output library
 
std::ios_base
 
 
fmtflags setf( fmtflags flags);
(1)  
fmtflags setf( fmtflags flags, fmtflags mask);
(2)  

Sets the formatting flags to specified settings.

1) Sets the formatting flags to flags

2) Clears the formatting flags under mask, and sets the cleared flags to those specified byflags. Essentially the following operation is performed  (flags & mask) wherefl 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:ConstantExplanation decuse decimal base for integer I/O octuse octal base for integer I/O hexuse hexadecimal base for integer I/O basefielddec|oct|hex|0. Useful for masking operations    由此向上四个是一组 leftleft adjustment (adds fill characters to the right) rightright adjustment (adds fill characters to the left) internalinternal adjustment (adds fill characters to the internal designated point) adjustfieldleft|right|internal. Useful for masking operations   由此向上四个是一组 scientificgenerate floating point types using scientific notation, or hex notation if combined with fixed fixedgenerate floating point types using fixed notation, or hex notation if combined with scientific floatfieldscientific|fixed|(scientific|fixed)|0. Useful for masking operations   由此向上3个是一组 boolalphainsert and extract bool type in alphanumeric format showbasegenerate a prefix indicating the numeric base for integer output, require the currency indicator in monetary I/O showpointgenerate a decimal-point character unconditionally for floating-point number output showposgenerate a + character for non-negative numeric output skipwsskip leading whitespace before certain input operations unitbufflush the output after each output operation uppercasereplace certain lowercase letters with their uppercase
equivalents in certain output output operations




例子





C/C++ code?
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
 
int main () {
  cout.setf ( ios::hex, ios::basefield );       // set hex as the basefield
  cout.setf ( ios::showbase );                  // activate showbase
  cout << 100 << endl;
  cout.setf ( 0, ios::showbase );               // deactivate showbase
  cout << 100 << endl;
  return 0;
}

输出:
0x64
64

setprecision:
C/C++ code?
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <iomanip>
using namespace std;
 
int main () {
  double f =3.14159;
  cout << setprecision (5) << f << endl;
  cout << setprecision (9) << f << endl;
  cout << fixed;
  cout << setprecision (5) << f << endl;
  cout << setprecision (9) << f << endl;
  return 0;

输出:
3.1416
3.14159
3.14159
3.141590000


参考网址:

http://en.cppreference.com/w/cpp/io/ios_base/setf


原创粉丝点击