C++ 输出格式控制
需包含头文件:
浮点数精度、域宽、填充
操作符 | 功能 |
---|---|
right-aligned | right-aligned |
setprecision(int n) | 设置以n表示的数值精度 |
setw(int n) | 设置以n表示的域宽 |
setfill(char c) | 设置以c表示的填充字符 |
输出格式
操作符 | 功能 |
---|---|
oct | 以八进制格式输出数据 |
dec | 以十进制格式输出数据 |
hex | 以十六进制格式输出数据 |
endl | 插入换行符并刷新输出缓冲流 |
uppercase | 在以十六进制格式输出时字母大写 |
skipws | 在输出时跳过空白 |
flush | 刷新输出缓冲流 |
left | 左对齐 |
right | 右对齐 |
scientific | 以科学计数法输出 |
fixed | 以定点数方式输出 |
showbase | 输出前缀: 八进制0;十六进制0x |
showpoint | 在输出浮点数时带小数点 |
showpos | 在输出正整数时带“+” |
示例
#include <iostream>
#include <iomanip>
using namespace std;
int main(int argc, char *argv[])
{
double d = 3.1415926;
cout << "默认精度:" << d << endl;
cout << "精度(3):" << setprecision(3) << d << endl;
cout << "域宽(5):" << setw(5) << d << endl;
cout << "域宽(10),填充字符(*):" << setw(10) << setfill('*') << d << endl;
unsigned int ui = 32;
cout << "八进制:" << oct << ui << endl;
cout << "十进制:" << dec << ui << endl;
cout << "十六进制:" << hex << ui << endl;
cout << "十六进制大写:" << hex << uppercase << ui << endl;
cout << "带前缀:" << hex << showbase << ui << endl;
int i = 32;
cout << "带+号:" << dec << showpos << i << endl;
return 0;
}
运行效果: