之前一直对C++输出格式的控制不了解,今天试验过之后,稍微明白了一点,把自己的理解写一下:
在这里主要讲一下setiosflags(ios::fixed),setiosflags(ios::left),setiosflags(ios::right),setw(n),setprecision(n);
setprecision(n)主要是设置有效数字,比如:
cout<<setprecision(3)<<10.0/3;//必须要写成10.0,不然整数做运算后结果仍为整数,会把小数部分给舍弃掉
显示结果为:3.33(3位有效数字);
如果想要控制小数点后的位数,就需要用到setiosflags(ios::fixed)了,比如:
cout<<setiosflags(ios::fixed)<<setprecisioin(3)<<10.0/3;
显示结果为:3.333(小数点后保留3位);
setw(n)是设置输出内容所占用的位数,比如:
cout<<setw(10)<<10.0/3;
显示结果为: 3.33333(默认为右对齐,前面有4个空格);
一般情况,setw(n)是和setiosflags(ios::left)和setiosflags(ios::right)配合使用的,比如:
cout<<setiosflags(ios::left)<<setw(10)<<10.0/3;
显示结果为:3.33333 (左对齐,右边还有4个空格);
cout<<setiosflags(ios::right)<<setw(10)<<10.0/3;
显示结果为: 3.33333(和上面不加setiosflags(ios::right)的结果相同,前面有4个空格)。