C++中关于cout相关的输出格式(操作流算子)
这边需要注意的是如果使用到setpercision,一定要引入iomanip头文件,否则编译会出错
注意以下的操作流算子都是在头文件iomanip中定义的,强烈建议使用的时候引入改头文件否则可能会出现错误
默认情况下使用的算子(也可以理解为没有使用任何算子的时候输出遵循的规则)
dec:以十进制输出整数
right:右对齐,如果宽度不够的时候,将填充字符添加到右边(该句子的意思就是,一般情况下左右对齐是与setw一起配套使用的,否则左右对齐难以体现出来,此时通过setw设置最小的输出字段,如果此时输出的字段的长度小于最小的字段输出长度,那么填充字符就是在左边进行填充,反之左对齐就是在右边进行填充)
这边需要注意主要设置一次之后,后面的输出方式就是设置的方式了,除非再次通过算子进行修改,否则不会变化
nobooolalpha:true和false输出为0,1
noshowpoint:只有当小数部分存在时候才显示小数点,即1.00的输出为1
noshowpos:在非负数值中不显示+
skipws:输入时跳过空白字符(如果设置为noskipws,那么在读入数字的时候会爆炸,只要存在空格就不会读入数字了,这点需要注意)
nouppercase:十六进制中使用a-e,若输出前缀则为0x,科学计数法中输出的为e
也就是只要不是字符串中的输出(包括字符),那么都是使用小写输出
其他算子:
hex:以十六进制形式输出整数
oct:以八进制形式输出整数
fixed:定点数,可以这样记忆,以普通小数形式输出浮点数
scientific:以科学计数法形式输出浮点数
left:左对齐
setbase:设置输出整数时的进制,注意里面的形参只能为8,10,16
setw:设定下一个输出字段的最短长度,注意也可以定义输入字符串读入的字符个数
setfill:通常与setw配套使用,控制的是最小输出字段的长度不够时进行填充的字符
eg:cout << setw(3) << setfill('@') << 1 << endl;
output:@@1
setprecision:注意精度的设置适用于浮点数的输出
在使用非fixed并且非scientific方式进行输出的情况下,里面的形参n控制的是有效数字个数,如果整数部分的数字个数大于n,那么输出形式会变成科学计数法,如果n会到达小数部分,那么输出是按照四舍五入的方式进行输出
注意该精度并不会将1.2000后面的0输出
eg:cout << setprecision(10) << 1.2000 << endl;
如果使用了fixed或者scientific那么n代表的是保留小数点后的n位数字
output:1.2
setiosflags:将某个输出格式标志置为1
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。
也就是说下面的两个输出方式的效果是一致的
eg:
cout << setiosflags(ios::fixed) << setprecision(10) << 1.20 << endl;
cout << fixed << setprecision(10) << 1.20 << endl;
resetiosflags:将某个输出格式标志置为0
boolapha:把true和false输出为字符串
showbase:输出表示数值进制的前缀
showpoint:总是输出小数点
showpos:在非负数值中显示+
noskipws:输入时不跳过空白字符
uppercase:与nouppercase的作用相反
internal:符号左对齐,数值右对齐(对于有符号的数字的一种规范)
fixed:小数以定点数的形式输出
scientific:小数以科学计数法的形式进行输出
最新文章
- JavaScript 嵌套 书名号 查询
- Java虚拟机各内存区域的位置及功能的介绍
- 转载:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04
- Laravel5设计json api时候的一些道道
- [Ubuntu][Linux]更改PATH路径
- TextToSpeech之阅读文字
- Android获取焦点所在控件
- Java之IO操作总结
- 【leetcode】363. Max Sum of Rectangle No Larger Than K
- Qrcode生成二维码支持中文,带图片,带文字
- Android采取async框架文件上传
- PHP中的赋值-引用or传值?
- 冰刃IceSword中文版 V1.22 绿色汉化修正版
- C++ Socket学习记录 -2
- 百度地图Marker优化方案
- Linux(Ubuntu)安装libpcap
- [ExtJS5学习笔记]第十三节 Extjs5的Ext.each方法学习
- 《HTTP - 基于http的认证》
- django csrf使用教程,解决Forbidden (403)CSRF verification failed. Request aborted.
- Vagrant入门二(转)
热门文章
- git提交代码到GitHub操作-简易版(后续完善)
- 一个程序的自我修养「GitHub 热点速览 v.22.19」
- 【Azure Redis 缓存】 Python连接Azure Redis, 使用redis.ConnectionPool 出现 ";ConnectionResetError: [Errno 104] Connection reset by peer";
- Redis 的数据过期了就会马上删除么?
- linux篇-linux mysql数据库定时备份
- webpack.config.js和vue.config.js的区别
- Solon 1.8.0 发布,云原生微服务开发框架
- Linux namespace技术应用实践--调用宿主机命令(tcpdump/ip/ps/top)检查docker容器网络、进程状态
- Python <;算法思想集结>;之抽丝剥茧聊动态规划
- 移动云使用 JuiceFS 支持 Apache HBase 增效降本的探索