一、setw
1.1 使用格式
/*undefined*/ setw (int n);
1.2 功能说明
设置字段宽度,设置要在输出操作上使用的字段宽度。
表现为成员宽度在作为操纵器插入/提取它的流上用n作为参数调用(它可以在输入流或输出流上插入/提取)。这个操纵器在头文件中声明 。
1.3 参数说明
n:即为所设置的字段宽度的字符数
1.4 使用说明
#include <iostream>
using namespace std;
#include <iomanip>
int main()
{
cout << setw(10) << 77 << endl;
return 0;
}
二、setfill
2.1 使用格式
/*unspecified*/ setfill(char_type c);
2.2 功能说明
设置填充字符
将c设置为流的填充字符。表现为成员填用字符c作为参数调用它作为操纵符插入它的流(它可以插入输出流)。这个操纵器在头文件中声明 。
2.3 参数说明
c:流中新的填充字符
2.4 使用说明
int main()
{
cout << setfill('c') <<setw(10)<< 77 << endl;
return 0;
}
三、setbase
3.1 使用格式
/*unspecified*/ setbase (int base);
3.2 功能说明
将数字转换为进制形式表示
设置basefield标志
设置 basefield 其中一个可能的值: 十进制, 十六进制 要么八进制,根据论据base。
行为表现为setf(which,ios_base::basefield)是在作为操纵器插入/提取它的流上调用的,其中:
- 十进制,如果base是10
- 十六进制,如果base是16
- 八进制,如果base是8
- 如果base是任何其他值,则为零。
它可以在输入流或输出流上插入/提取。这个操纵器在头文件中声明。
3.3 参数说明
base:
base argument | same as inserting… |
---|---|
8 | oct |
10 | dec |
16 | hex |
any other | resetiosflags(ios_base::basefield) |
3.4 使用说明
// setbase example
#include <iostream> // std::cout, std::endl
#include <iomanip> // std::setbase
int main() {
std::cout << std::setbase(16);
std::cout << 110 << std::endl;
return 0;
}
四、setprecision
1.1 使用格式
/*unspecified*/ setprecision (int n);
1.2 功能说明
设置小数精度
设置用于格式化输出操作上的浮点值的小数精度。
表现为成员精确在作为操纵器插入/提取它的流上用n作为参数调用(它可以在输入流或输出流上插入/提取)。
使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。 如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。
如果与setiosnags(ios::scientific)合用, 可以控制指数表示法的小数位数。 setiosflags(ios::scientific)是用指数方式表示实数。这个操纵器在头文件中声明。
1.3 参数说明
n:小数精度的新值。
1.4 使用说明
#include <iostream> // std::cout, std::fixed
#include <iomanip> // std::setprecision
int main() {
double f = 3.14159;
std::cout << std::setprecision(5) << f << '\n';
std::cout << std::setprecision(9) << f << '\n';
std::cout << std::fixed;
std::cout << std::setprecision(5) << f << '\n';
std::cout << std::setprecision(9) << f << '\n';
return 0;
}