控 制 符 | 作 用 |
dec | 设置整数为十进制 |
hex | 设置整数为八进制 |
oct | 设置整数为十六进制 |
setbase(n) | 设置整数为n进制(n=8,10,16) |
setfill(n) | 设置字符填充,c可以是字符常或字符变量 |
setprecision(n) | 设置浮点数的效数字为 |
setw(n) | 设置字段宽度为n位 |
setiosflags(ios::fixed) | 设置浮点数以固定的小数位数显示 |
setiosflags(ios::scientific) | 设置浮点数以科学计数法表示 |
setiosflags(ios::left) | 输出左对齐 |
setiosflags(ios::right) | 输出右对齐 |
setiosflags(ios::skipws) | 忽略前导空格 |
setiosflags(ios::uppercase) | 在以科学计数法输出E与十六进制输出X以大写输出,否则小写。 |
setiosflags(ios::showpos) | 输出正数时显示"+"号 |
resetiosflags() | 终止已经设置的输出格式状态,在括号中应指定内容 |
- #include <iostream.h>
- #include <iomanip.h> //使用输入输出流控制符除了要加头文件<iostream>外,还要加<iomanip>头文件
- void testdouble()
- {
- double d1=12.345678901234567;
- cout<<d1<<endl;
- }
- int main()
- {
- cout<<"/"123456/"的十进制位:"<<dec<<123456<<",八进制为: "<<oct<<123456<<",十六进制为:"<<hex<<123456<<'/n'<<endl;
- //dec:返回数值的十进制,oct返回是指的八进制,hex返回数值的十六进制。
- cout<<dec; //恢复为十进制格式
- cout<<setfill('*')<<setw(10)<<setiosflags(ios::left)<<123456<<'/n'<<endl;
- //setfill(c):设置字符填充,c可以是字符常或字符变量,只对本行有用。
- // setw(n):设置字段宽度为n位,如果n小于所要返回的字符的宽度则保留字符原样输出
- //setiosflags(ios::left):左对齐,setiosflags(ios::right):右对齐
- cout<<resetiosflags(ios::left); //终止已设置的输入输出流格式,本例去掉左对齐方式
- double d=12.345678901234567;
- testdouble(); //之前没有使用输入输出流控制符,d1默认格式输出(精度为6)
- cout<<"之前没有使用输入输出流控制符,d1默认格式输出(精度为6)"<<endl;
- cout<<setprecision(16)<<d<<endl;
- //设置浮点数的精度,n为有效数字,采用四则五入法舍位,setprecision(n)中,n小于等于16有效。
- testdouble();
- //之前使用了setprecision(),此函数保留前面的宽度设置。
- cout<<setiosflags(ios::fixed)<<setprecision(17)<<d<<endl;
- //setiosflags(ios::fixed):设置浮点数以固定的小数位数显示,8为8位小数,所指定的小数位如果大于小数本身小数位则补0。
- //使用setiosflags(ios::fixed)与不使用的区别:使用设置小数点后的精度,不使用是设置整个数的精度
- cout<<resetiosflags(ios::fixed);
- cout<<setiosflags(ios::scientific)<<setiosflags(ios::uppercase)<<setprecision(4)<<d<<'/n'<<endl;
- // setiosflags(ios::scietific):用科学计数法表示,4为指定小数位分为四位,且第四位四舍五入。
- //setiosflags(ios::uppercase) : 在以科学计数法输出E与十六进制输出X以大写输出,否则小写。
- return 0;
- }