iomanip头文件在实战中的作用
iomanip全称为IO Manipulators,意思是输入输出操纵器。iomanip头文件中一共有400余行代码,极大的题高了输入输出格式变换的便捷程度。但是在写代码解决的问题的过程中,鄙人总结了它一些常见用途。
它的作用
1.十进制向其他进制的转化
这里我们仅仅举16进制的例子,如果要转化为其他进制只需要将hex更换即可
#include "iostream"
#include "iomanip"
using namespace std;int main(){//使用cout << hex 和 setiosflags(ios::showbase|ios::uppercase)cout << "使用cout << hex 和 setiosflags(ios::showbase|ios::uppercase)" <<endl;cout << hex; //代表十六进制cout << setiosflags(ios::showbase | ios::uppercase); //需要前缀并且要大写cout << 100 <<endl;return 0;
}
执行结果:
当然如果不想要进制前缀的话,也可以这样:
#include "iostream"
#include "iomanip"
using namespace std;int main(){cout << "使用resetiosflags重设setioflags的设置" <<endl;cout <<resetiosflags(ios :: showbase | ios :: uppercase);cout << 100 <<endl;return 0;
}
或者直接暴力转换16进制。
#include "iostream"
#include "iomanip"
using namespace std;int main(){cout << "使用hex:" <<endl;cout << hex;cout << 100 <<endl;return 0;
}
执行结果:
最后隆重介绍一下我认为最便捷的一种进制转化方法
#include "iostream"
#include "iomanip"
using namespace std;int main(){//另一种实现十六进制的方式cout << "使用setbase(16)来设置十六进制" <<endl;cout << setbase(16);cout << 100 <<endl;cout << "使用setbase(8)来设置八进制" <<endl;cout << setbase(8);cout << 100 <<endl;return 0;
}
执行结果:
(温馨提示:经过我的多次实验,setbase(x)中的x只能为8或者16,若是其他数字只能按照十进制来计算)
2.实现头部字符填充
#include "iostream"
#include "iomanip"
using namespace std;int main(){cout << "下面两行作为对比setfill 和 setw的效果范围:" << endl;cout << setfill('*') << setw(8);cout <<100 << endl;;cout << 100 << endl;return 0;
}
执行结果:
(值得注意的是,第二次输出的100却没有字符填充的待遇)
3.规定小数点位数
1) 第一种方式
#include "iostream"
#include "iomanip"
using namespace std;int main(){cout << "下面两行为setprecision的效果,效果为3和9" <<endl;double pi=3.1415926;cout <<setprecision(3);cout << pi <<endl;cout <<setprecision(9);cout << pi << endl;return 0;
}
执行结果:
可见,所规定的字符长度并不计算小数点所占的位数,并且值得注意的是,由于pi的长度(不带小数点)只有8位,因此第二次输出pi的时候仍旧输出8位,可见这一种输出方式具有着一定的灵活性(比较聪明)。
2) 第二种方式
在对小数位数进行限定的过程中,我们有时候并不希望输出程序有多聪明,而是希望他能按照我们的意思去进行输出。比如,我们在oj平台中提交代码的时候,能够AC的往往是具有着严格数据规范的,因此我们可以使用以下的一种方式。
#include "iostream"
#include "iomanip"
using namespace std;int main(){double pi=3.1415926;cout << "下面两行为setprecision加上fixed" <<endl;cout << fixed;cout << setprecision(3);cout << pi <<endl;cout << setprecision(9);cout << pi << endl;return 0;
}
执行结果:
其实,也就是比上面多一个fixed罢了,这时候setprecision(x)规定的x便是输出数字的小数点后面的位数。当然如果觉得这种方法繁琐,也可以使用传统的printf("%.3f",m); 来进行数据格式的规范。
当然本篇文章到此也就告一段落,希望大家多多补充,原创不易,点个赞再走呗。
iomanip头文件在实战中的作用相关推荐
- C++万能库头文件在vs中的安装
前言 C++万能库头文件在vs2019中的安装 一.C++万能库是什么? 1.C++万能库的定义:简而言之,就是一条语句代替了多条语句,包含了目前c++所包含的所有头文件 2.C++万能库的写法:#i ...
- c51语言的标准库函的头文件,C51编程中头文件的使用
头文件在C51的编程中是不可缺少的部分.本文将对keil C中常用头文件予以说明,并就如何编写头文件进行初步介绍. 一.C51常见本征函数库 一些常见的头文件都是keil C自带的,在安装目录下的C5 ...
- c语言万能头,C++万能库头文件在vs中的安装步骤(图文)
前言 C++万能库头文件在vs2019中的安装 一.C++万能库是什么? 1.C++万能库的定义:简而言之,就是一条语句代替了多条语句,包含了目前c++所包含的所有头文件 2.C++万能库的写法:#i ...
- 习题 8.5 将本章的例8.4改写为一个多文件的程序:1.将类定义放在头文件arraymax.h中;2.将成员函数定义放在源文件arraymax.cpp中;3.主函数放在源文件file1.cpp中。
C++程序设计(第三版) 谭浩强 习题8.5 个人设计 习题 8.5 将本章的例8.4改写为一个多文件的程序: 1.将类定义放在头文件arraymax.h中: 2.将成员函数定义放在源文件arraym ...
- c语言iomanip头文件的作用,#includeiomanip.h在C语言中代表什么
满意答案 tracyofme 2013.12.01 采纳率:44% 等级:11 已帮助:4995人 iomanip.h是I/O流控制头文件,就像C里面的格式化输出一样. 在新版本的c++中头文件 ...
- iomanip头文件的作用
在c++程序里面经常见到下面的头文件: #include <iomanip> io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效.) 主 ...
- C++之——#include iomanip头文件
iomanip在c++程序里面经常见到下面的头文件#include <iomanip>,io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有 ...
- c语言intrins函数,【转载】KEIL C 头文件INTRINS.H中的几个函数说明
原标题: [51单片机]keil C51中的本征函数库及使用说明 为方便自己查找,已将标题改名 原文来源:http://blog.163.com/hooyang@126/blog/static/118 ...
- 没有头文件调用cpp_VS2017中同一个解决方案下不同工程的调用
解决方案结构如下图所示:解决方案project1下有三个工程:project1(我会用它调用其余两个).project2(其头文件含一个.h 一个.cpp).project3(其头文件含两个.h 两个 ...
最新文章
- KDD Cup 2020 多模态检索赛道:数据分析
- WPF入门:数据绑定
- 模板:使用文件作为输入
- java的构造函数格式_java – 自定义MapReduce输入格式 – 找不到构造函数
- php执行只读文件,php实现以只读方式打开文件的方法
- java对接ldap_如何使用Java操作LDAP之LDAP连接(一)
- linux基础学习(九)
- Linux网络协议栈(四)——链路层(2)
- 摄像头水平视野垂直视野?_如何在“动物穿越:新视野”中的梦中游览某人的岛屿...
- falsk 请求没有返回值报错
- java 使用apollo,Springboot apollo原理及使用方法详解
- opencv3.4.0在ubuntu16.04上的安装
- java中的递归算法_java递归算法详解
- Hadoop配置Yarn
- 电脑软件:推荐一款磁盘空间分析工具——WizTree
- 传奇 SF 开服架设流程详细介绍:
- JSP中文乱码解决方案了解和TOMCAT中文乱码解决
- matlab pdepe函数边界,科学网-使用MATLAB中pdepe函数求解一维偏微分方程-邓浩鑫的博文...
- 【免杀前置课——Windows编程】五、窗口控件——什么是控件、Windolws 窗口两大类、Windows标准控件/通用控件、控件响应的接收、创建窗口制作不同控件
- 一点一点解读紫书中例子--大整数类BigInteger (1)