I/O流常用控制符(#include<iomanip> ):
dec:以十进制输出,相当于%d
hex:以十六进制输出,相当于%X
oct:以八进制输出,相当于%o
测试代码:
int a = 16;
cout<<dec<<a<<endl;//16
cout<<hex<<a<<endl;//10
cout<<oct<<a<<endl;//20
setbase(int n) : 将数字转换为 n 进制.
测试代码:
cout<<setbase(8)<<255<<endl; //377
cout<<setbase(10)<<255<<endl; //255
cout<<setbase(16)<<255<<endl;//ff
setfill(c):设置填充字符c
setw(n):设置域宽为n个字符,默认为右对齐
setfill和setw只作用于紧随其后的部分
测试代码:
char *pt = "China";
cout<<setw(10)<<pt<<endl;//输出为" China"
cout<<setfill('*')<<setw(10)<<pt<<endl;//输出为"*****China"
setprecision(n):设置小数精度为n,一共有n位数显示
测试代码:
double pi=22.0/7.0; //计算pi值
cout<<setprecision(10)<<pi<<endl;//"3.142857143"
setiosflags(ios::fixed) 固定的浮点显示
与setprecision(n)一起使用,加上setiosflags(ios::fixed)表示输出的小数位数为n(不够的用0补齐),不加的时候表示整个输出的位数为n。
测试代码:
cout<<setprecision(4)<<pi<<endl;//31.71
cout<<setiosflags(ios::fixed)<<setprecision(4)<<pi<<endl;//31.7143
setiosflags(ios::scientific) 指数表示
以指数的形式输出数据,即整数位只有一个数字
测试代码:
double d=12.345678901234567;
cout<<setiosflags(ios::scientific)<<setprecision(4)<<d<<endl;//1.2346e+001
setiosflags(ios::left) 左对齐
测试代码:
char *pt = "China";
cout<<setiosflags(ios::left)<<pt<<endl;//输出为“China”
cout<<setiosflags(ios::left)<<setw(10)<<pt<<"d"<<endl;//输出为"China "
setiosflags(ios::right) 右对齐
测试代码:
char *pt = "China";
cout<<setiosflags(ios::right)<<pt<<endl;//输出为“China”
cout<<setiosflags(ios::right)<<setw(10)<<pt<<"d"<<endl;//输出为" China"
setiosflags(ios::skipws) 忽略前导空白
setiosflags(ios::uppercase) 16进制数大写输出
测试代码:
cout<<setiosflags(ios::uppercase)<<hex<<255<<endl;//FF
dec:以十进制输出,相当于%d
hex:以十六进制输出,相当于%X
oct:以八进制输出,相当于%o
测试代码:
int a = 16;
cout<<dec<<a<<endl;//16
cout<<hex<<a<<endl;//10
cout<<oct<<a<<endl;//20
setbase(int n) : 将数字转换为 n 进制.
测试代码:
cout<<setbase(8)<<255<<endl; //377
cout<<setbase(10)<<255<<endl; //255
cout<<setbase(16)<<255<<endl;//ff
setfill(c):设置填充字符c
setw(n):设置域宽为n个字符,默认为右对齐
setfill和setw只作用于紧随其后的部分
测试代码:
char *pt = "China";
cout<<setw(10)<<pt<<endl;//输出为" China"
cout<<setfill('*')<<setw(10)<<pt<<endl;//输出为"*****China"
setprecision(n):设置小数精度为n,一共有n位数显示
测试代码:
double pi=22.0/7.0; //计算pi值
cout<<setprecision(10)<<pi<<endl;//"3.142857143"
setiosflags(ios::fixed) 固定的浮点显示
与setprecision(n)一起使用,加上setiosflags(ios::fixed)表示输出的小数位数为n(不够的用0补齐),不加的时候表示整个输出的位数为n。
测试代码:
cout<<setprecision(4)<<pi<<endl;//31.71
cout<<setiosflags(ios::fixed)<<setprecision(4)<<pi<<endl;//31.7143
setiosflags(ios::scientific) 指数表示
以指数的形式输出数据,即整数位只有一个数字
测试代码:
double d=12.345678901234567;
cout<<setiosflags(ios::scientific)<<setprecision(4)<<d<<endl;//1.2346e+001
setiosflags(ios::left) 左对齐
测试代码:
char *pt = "China";
cout<<setiosflags(ios::left)<<pt<<endl;//输出为“China”
cout<<setiosflags(ios::left)<<setw(10)<<pt<<"d"<<endl;//输出为"China "
setiosflags(ios::right) 右对齐
测试代码:
char *pt = "China";
cout<<setiosflags(ios::right)<<pt<<endl;//输出为“China”
cout<<setiosflags(ios::right)<<setw(10)<<pt<<"d"<<endl;//输出为" China"
setiosflags(ios::skipws) 忽略前导空白
setiosflags(ios::uppercase) 16进制数大写输出
测试代码:
cout<<setiosflags(ios::uppercase)<<hex<<255<<endl;//FF