C++I/O流——(4)格式化输入/输出(第一节)

本文介绍了如何在C++中使用ios类的成员函数实现格式化输入/输出,包括控制标志位如跳过空白符、对齐方式、基数转换和精度设置等,旨在帮助编程学习者理解和应用这些功能。
摘要由CSDN通过智能技术生成

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
含泪播种的人一定能含笑收获!

一起加油!

目录

前言:

 用ios类成员函数实现格式化输入/输出:

1.控制输入/输出的标志位:

2.控制输出格式的成员函数: 


前言:

        以上介绍的都是按照系统默认的格式进行输入/输出,即无格式输入/输出,主要针对简单的程序和数据,为了方便采取了默认的格式。然而,有时程序需要按照特定的格式进行输入/输出.例如,要求用十六进制输出整数,或者对输出的小数只保留三位小数等,这种按指定的格式输出,被称为格式化输入输出。C++提供了两种方法可以进行输入/输出格式化的操作:一种是用IOS类成员函数控制格式,另一种是利用特定的操作符函数实现格式控制。

 用ios类成员函数实现格式化输入/输出:

该方法要使用ios类中定义的用来控制格式的标志位和用来设置格式的成员函数。

1.控制输入/输出的标志位:

        在流类库根类ios base 中,有一个作为数据成员的格式控制变量,用来记录格式标志;通过设置标志,可以控制格式化输入/输出效果。各种格式标志被定义为枚举类型中的一组符号常量该枚举的定义如下:

enum

{

skipws=0x0001
left=0x0002
right=0x0004
internal=0x0008
dec==0x0010
oct=0x0020
hex=0x0040
showbase-0x0080
showpoint=0x0100
uppercase=0x0200
showpos=0x0400
scientific=0x0800
fixed=0x1000
unitbuf=0x2000
stdio=0x4000

}

此枚举类型的每个成员分别定义标志位的一个位。其每个位表示不同的含义,引用这些格式标志时要在前面加上类名ios和域运算符“::”。

ios::skipws            0x0001             跳过输入中的空白符
ios::left              0x0002                 输出数据按输出域左对齐
ios::right        0x0004                     输出数据按输出域右对齐
ios::internal        0x0008    数据的符号左对齐,数据本身右对齐,符号和数据之间为填充符
ios::dec            0x0010                  转换基数为十进制形式 

ios::oct   0x0020   转换基数为八进制形式
ios::hex   0x0040   转换基数为十六进制形式
ios::showbase   0x0080    输出的数值数据前面带有基数符号(0或0x)
ios::showpoint   0x0100   浮点数输出带有小数点
ios::uppercase   0x0200   用大写字母输出十六进制数值
ios::showpos   0x0400   正数前面带有符号“+”
ios::scientific   0x0800   浮点数输出待用科学表示法
ios::fixed   0x1000   使用定点数(小数)形式表示浮点数
ios::unitbuf   0x2000   完成输入操作后立即刷新流的缓冲区
ios::stdio   0x4000    完成输入操作后刷新系统的stdout.stderr

2.控制输出格式的成员函数: 

IOS类提供了几个用于控制输入/输出格式的成员函数。

long flags()该函数返回当前标志字
long flags(long)该函数使用参数更新标志字,并返回更新前的标志字
long setf(long setbits,long field)该函数用来将field参数所指定的标志位清零,将setbits参数的标志位置1,并返回设置前的标志字
long setf (long)该函数用来设置参数的指定的标志位,并返回更新前的标志字
long unsetf (long)该函数用来清除参数的指定的标志位,并返回更新前的标志字
int width()该函数用来返回当前输入的数据宽度
int width(int)该函数用其参数设置当前输出的数据宽度,并返回更新前的宽度值
char fill()该函数用来返回当前所用的填充符
char fill(char)该函数用来设置当前的填充符为参数给定的字符,并返回更新前的填充符设置浮点数输出精度的成员函数
int (precision)该函数用来返回当前浮点数的有效数字的个数。浮点数的精度是用有效数字个数来表示
int precision(int)该函数用来设置当前浮点数输出时有效数字个数为该函数所制定的参数值,并返回更新的,个数越大,表示精度越高前的值

        以上就是我对C++I/O流——(4)格式化输入/输出(第一节)的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++I/O流的理解,请持续关注我哦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梵豪

你的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值