C++11新特性(76)-浮点数格式控制(Floating Format Control)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/craftsman1970/article/details/82777416

前几篇文章中的某一篇,有一个读者回复,说我文章的内容C++ Primer上都有。确实是这样。作者写作本连载的的目的,首先是参照C++Primer自己学习,然后融入自己的理解并与大家分享。

大师的书当然好,但是具体到每个人不一定一下子都能够理解。通过作者的文章,大家可以在学习,理解的过程中哪怕可以少走一点弯路,对于作者来讲都是莫大的荣幸。

iostream中的操作符

相信每个C++程序员都见过下面的代码。

就作者本人来讲,很长时间以来,只是知道endl是个换行符,和"\n"差不多。另外一个认识,cout只能自动决定输出的内容,所以在需要改变输出格式时就会用回printf,虽然有点别扭,但也并没有去深究。

直到这次写公众号文章才知道endl是操作符(manipulator),在IO库中除了endl以外还提供了很多操作符,可以用于控制输出的格式。具体如下图。

本图来自C++Primer第五版

操作符举例

控制整数输出的进制表示

代码使用showbase/noshowbase来打开和关闭进制表示;使用oct/hex/dec来控制输出的进制。输出结果如下:

控制浮点数格式

浮点数的输出格式也可以控制,下面的代码是控制输出精度的例子。

代码输出如下:

C++11新特性

C++11中引入了两个新操作符:hexfloat和defaultfloat。分别用于将浮点数输出格式指定为16进制和10进制。

代码输出如下:

作者一句话


论语中有云:温故而知新。此话果然不假。

示例代码下载地址

 https://raw.githubusercontent.com/xueweiguo/OOThinking/master/20180516%20FloatingFormatControl.cpp

觉得本文有帮助?请分享给更多人。

阅读更多更新文章,请扫描下面二维码,关注微信公众号【面向对象思考】

猜你喜欢

转载自blog.csdn.net/craftsman1970/article/details/82777416