Loading... 因为经常忘记流输入输出的格式控制怎么写,我就在这里记录一下一些常用的格式控制符。(先写一些常见的吧,剩下的后面用到再补充) !> 注意要包括头文件 <iomanip> @> 流操纵算子 栏中的星号\*不是算子的一部分,星号表示在没有使用任何算子的情况下,就等效于使用了该算子。例如,在默认情况下,整数是用十进制形式输出的,等效于使用了 dec 算子。 |流操作算子|说明| | -------- | -------- | |endl | 输出换行符| |\*dec | 以十进制输出| |hex | 以十六进制输出| |oct | 以八进制输出| |setw(int n) | 设置输出的宽度| |setfill(char ch)|设置填充字符| |setprecision(int n)|设置保留的小数位数(四舍五入)| |fixed|将一个浮点数以一个定点数的形式输出| |showpoint|将一个浮点数以带小数,带结尾是0的形式输出,即便他没有小数部分| |\*right /left|右对齐/左对齐| |boolapha|把 true 和 false 输出为字符串| |\*noboolalpha|把 true 和 false 输出为 0、1| |showbase|输出表示数值的进制的前缀| |\*noshowbase|不输出表示数值的进制的前缀| |showpoint|总是输出小数点| |\*noshowpoint|只有当小数部分存在时才显示小数点| |showpos|在非负数值中显示 +| |\*noshowpos|在非负数值中不显示 +| 前四个应该很容易就明白含义,就不多解释了。 ##setw(int n) 默认情况下,输出内容需要多少个位置,cout就仅仅占用那么多屏幕位置。你可以使用setw(n),指定一个输出内容占用多少个位置。 例如: ```cpp cout<<setw(8)<<"C++"<<setw(6)<<"101"<<endl; ``` 这样 C++之前打印5个空位置(注意:是之前),101之前打印3个空位置。 **setw(n)每次只作用一个输出字段,所以,要想每个字段输出都设置宽度,必须每次都要写一遍setw(n**) ------------ ##setprecision(n) setprecision(n)指定一个浮点数的精度。 1.)可以指定一个浮点数打印几位数字,**其中n是总位数!!**包括小数之前和之后的数字。**超出的位数会被四舍五入进去!!!** 例如 ```cpp double num = 1.23456; cout<<setprecision(2)<<num<<endl; ---- 输出1.2 cout<<setprecision(4)<<num<<endl; ---- 输出1.235 cout<<setprecision(5)<<num<<endl; ---- 输出1.2346 ``` 2)与setw()不同setprecision(n)一直作用到下一个setprecisin(n)之前,所以,只需要写一个setprecision(n)就可以。而setw()要每次都写。 ##fixed fixed可以强制数值不以科学技术法显示,即只用小数形式显示。 (在遇见大的浮点数时候,计算机会以科学技术法形式显示浮点数) 默认情况下,使用fixed之后,小数点后面数字位数为6, 如: ```cpp double i = 1.23; cout<<fixed<<i<<endl; ``` 会输出1.230000 3)我们可以使用fixed和setprecision(n)一起使用的方法,来改变这个小数点后的位数,当setprecision(n)作用于fixed之后时候, setprecision(n)指定的是小数点后的数字位数 如: ```cpp double k = 3.141592653; cout<<fixed<<setprecision(2)<<k<<endl; ``` 输出:3.14 这时候,后面也会四舍五入。**即只要用了setprecision(n)就会四舍五入** 4)一旦使用了fixed之后,它会作用于后面所有的浮点数. 5)注意,默认情况下,没有小数的部分不会显示小数点。但使用fixed之后,会强制显示小数点。 如 ```cpp double i= 1; cout<<fixed<<i<<endl; ``` 显示 1.000000 ##showpoint (与setprecision(n)一起使用) showpoint 强制小数后面以0显示。例如 ```cpp cout<<setprecision(6); cout<<showpoint<<1.23<<endl; ----显示 1.23000 cout<<showpoint<<123.0<<endl; ----显示 123.000 ``` ##right /left 对齐方式 大多数系统默认情况下为右对齐, 可以使用left ,将输出格式左对齐 用法 ```cpp cout<<left; cout<<setw(8)<<1.23<<endl; cout<<setw(8)<<1.23456<<endl; ``` 最后修改:2019 年 10 月 10 日 © 允许规范转载 赞 如果觉得我的文章对你有用,请随意赞赏