千家信息网

C++的输出格式控制技巧是什么

发表于:2024-12-03 作者:千家信息网编辑
千家信息网最后更新 2024年12月03日,本篇内容主要讲解"C++的输出格式控制技巧是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++的输出格式控制技巧是什么"吧!C++中,将数据从一个对
千家信息网最后更新 2024年12月03日C++的输出格式控制技巧是什么

本篇内容主要讲解"C++的输出格式控制技巧是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"C++的输出格式控制技巧是什么"吧!

C++中,将数据从一个对象到另一个对象的流动抽象为"流"(stream)。按流动的方向不同,构成输入/输出流。对于流数据的输入输出格式,C++提供了两种不同的控制方式,一种是使用ios_base类提供的setf、width等函数设置输入输出格式,另一种是通过重载的格式控制符"<<"、">>"以及流格式控制对象进行设置。

大部分流的输入输出格式可以用setf函数来设置。该函数有两种重载形式。其但参数的setf原型为:

fmtflage setf(fmtfalg flag)

参数flag说明所要设置的格式,由ios_base给出,可取如下枚举常量:

enum{  left =0x0001, //在域中靠左输出  right =0x0002, //在域中靠右输出  internal =0x0004, //符号靠左数值靠右输出,中间默认以空格填充  dec =0x0008, //数值以十进制输出  hex =0x0010, //以16进制输出  oct =0x0020, //8进制输出  fixed =0x0040, //浮点数以小数方式输出  scientific =0x0080, //浮点数以科学计数方式输出  boolalpha =0x0100, //布尔值以true/false方式输出  showbase =0x0200, //8进制前面加0做指示符,16进制前面加0x做指示符  showpoint =0x0400, //不管小数点和尾部的0是否可省略不写,都输出小数点和0  showpos =0x0800, //在正数前面输出+号  skipws =0x1000, //不读入空白字符(空格,制表符\t,回车\r,和换行\n)  unitbuf =0x2000, //每次写入数据都刷新到相应设备  uppercase =0x4000, //科学计数法的"e"和16进制计数的"x",大写输出为"E"和"X"  adjustfield =left | right | internal, //一般用作对齐方式的屏蔽码  basefield =dec | hex | oct, //一般用作数值进制输出方式的屏蔽码  floatfield =scientific | fixed //一般用作浮点数输出方式的屏蔽码  };

一般用派生类ios作前缀"ios::"使用以上枚举值.

Setf函数的另一个使用原型如下:

Fmtflags setf(fmtflags flag,fmtflags mask)

其中第二个函数mask为隐码格式.例如设置adjustfield,basefield和floatfield格式.组成隐码格式的所有格式会首先被复位,然后用***个参数flag去设置新格式.

对于setf函数设置的格式,可用unsetf函数进行复位.下面是他的原型,参数mask为所要复位的格式.

Void unsetf(fmtflags mask)

下面程序使用setf/unsetf函数对内建的cout流进行格式设置和复位.

#include  using namespace std;  int main(void)  {  //科学计数方式显示,大写E  cout.setf(ios::scientific | ios::uppercase);  cout<<2006.5<  //下面的showpos不起作用,不会显示出"+"号  cout.setf(ios::floatfield,ios::fixed | ios::showpos);  cout<<2006.5<  //显示"+"号  cout.setf(ios::showpos);  cout<<2006.5<  return 0;  }

对于流的其他格式,如输出的最小宽域、数值精度以及填充字符的格式设置,可以使用ios_base类提供的width和precision函数,以及ios类提供的fill函数.

Width函数用newwidth设置新的最小域宽,如果输出不足以占满整个域,会补充适当的前导空格或者前导0.

Streamsize width(streamsize newwidth)

默认的数值精度为6位有效数字,可用precision函数将参数newprecision设置为新的精度值,数值输出时会按这个精度进行必要的四舍五入.

Streamsize precision(streamsize newprecision)

默认的填充字符为空格字符,可以用fill函数将参数fill_char字符设置为填充字符

Char_type fill(char_type fill_char)

下面示例程序对cout流进行了域宽、精度和填充字符等流格式进行了设置。

#include  using namespace std;  int main(void)  {  cout.width(20);  cout<<"hello"<  cout.precision(4);  cout<<2009.228<  cout.precision(5);  cout<<2009.228<  cout.precision(7);  cout<<2009.228<  cout.width(20);  cout.fill('*');  cout<<"baby"<  return 0;

到此,相信大家对"C++的输出格式控制技巧是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

输出 格式 函数 方式 字符 控制 参数 数值 进制 精度 C++ 空格 输入 技巧 原型 对象 小数 数据 点数 科学 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 在数据库中创建一个名为教师的表 西安交通大学学生网络安全守则 教育系统网络安全检查自查 服务器SN的标签卡 软件开发毕业论文参考资料 基于大数据下的网络安全 软件开发业务经理是干什么的 怎么查每天加qq群的数据库 腾讯云服务器下载文件 计算机网络技术能升什么专业 汇顶科技 软件开发 笔试题 电脑网络安全检查记录表 西门子服务器F31806故障 厦门网络安全公告 古剑奇谭网络版海外版服务器 网络技术服务费税率 数据库建表供应商表s 网络安全小课堂的内容 龙狮互联网科技有限公司 新的服务器不能下载软件 软件开发安卓机构 软件开发用的摄像头 ps 读取pl的数据库 金山岭服务器能调头吗 迪哥闯世界的贝爷生存服务器 日照软件开发团队 大姆指互联网产业科技集团 惠普服务器加装固态硬盘无法识别 歌颂网络安全的演讲 杭州三信网络技术有限公司
0