cout 的种种
作为一个竞赛选手,对于浮点型输出一向都是直接用printf 输出了事,但是身为一个c++ 程序员,发现这点基础都不会,太尴尬了,说出去丢人,于是抽空学了学,总结一下
头文件
iostream 就不用说了,重要的是iomanip(io 的manipulate)
1. 整型 输出进制(默认十进制)
八进制,十进制,十六进制
int a;
cin>>oct>>a;
cout<<oct<<a;
//效果等同
printf("%o",a);
cout<<dec;//默认的都是全局设置,所以最好在每次输出之后设为默认
2.控制输出长度,有效位数,填充字符
控制输出长度 setw() w是(width),这个只作用一次,如果输出的字段大于给定的长度,不起作用
有效位数 setprecision(), 这个是全局的,默认是六位//对浮点数作用
填充字符 在setw() 中如果位数不够,用这个设定的字符来补充,默认是空格
使用方法
int a = 100;
cout<<setw(10)<<a<<endl;//控制输出的长度,这个
cout<<setfill('*')<<setw(10)<<a<<endl;
cout<<seprecison(2.111)<<a<<endl;
3.格式控制
需要用到setiosflag
需要左对齐,右对齐
setiosflag(ios:: left),setiosflag(ios:: right);//默认右对齐,全局设置
cout<<setw(10)<<setiosflags(ios::left)<<a<<endl;
固定输出小数位数,setiosflag(ios::fixed)与setprecision(n)连用.全局设置
cout<<setiosflags(ios::fixed)<<setprecision(5)<<a<<endl;
相当于printf("%.5f\n",a);
更多请查表
表格