c++中的iomanip
进制控制
- 头文件
include<iomanip>
- hex
- dec
- oct
cpp
int a=10,b=20,c=0xfff;
cout<<oct<<a<<endl;//8进制输出
cout<<dec<<b<<endl;//10进制输出
cout<<hex<<c<<endl;//16进制输出
输出格式控制
- setfill('*') 设置填充字符为引号中的符号
- setw(n) 设置输出宽度为n个字符
- setprecision(n) 设置显示的有效数字为n位
- setbase(n) 设置n进制显示
- setiosflags(ios:😃 参数设定
- resetflags() 清除前面用setiosflags设置的格式
cpp
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int a=10;
double b=3.141592658;
double c=1.2232444;
cout<<a<<endl;
cout<<setiosflags(ios::showpos)<<a<<endl;//显示符号
cout<<setfill('@')<<setw(9)<<a<<endl;//用@当填充字符,字符宽度为9,默认右对齐
cout<<setfill('@')<<setw(9)<<setiosflags(ios::left)<<a<<endl;//左对齐
cout<<setprecision(3)<<b<<endl; //设置有效数字为3位,包含整数部分
cout<<setiosflags(ios::fixed)<<setprecision(3)<<b<<endl;//只显示小数点后的3位
cout<<setiosflags(ios::scientific)<<setprecision(3)<<b<<endl;//科学计数法
cout<<setbase(16)<<a<<endl;//以16进制输出a,setbase只有8/10/16三种选择
cout<<setiosflags(ios::scientific)<<resetiosflags(ios::scientific)<<c<<endl;
return 0;
}