ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++中关于cout相关的输出格式(操作流算子)

2022-02-19 10:31:21  阅读:208  来源: 互联网

标签:输出 cout 字符 C++ 算子 对齐 fixed


这边需要注意的是如果使用到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:小数以科学计数法的形式进行输出

标签:输出,cout,字符,C++,算子,对齐,fixed
来源: https://www.cnblogs.com/FlnButFly/p/15912023.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有