c++头文件iomanip.h中setw()、setprecision()、setbase用法示例详解
c++头文件iomanip.h中setw()、setprecision()、setbase
#include <iostream> //不要用iostream.h ,会出现好多问题
#include <iomanip> // io 流控制头文件, 主要是一些操纵用法如setw(int n),setprecision(int n)
//,setbase(int n),setfill(char c)的.
▲setw(n)用法: 通俗地讲就是预设宽度
如 cout<<setw(5)<<255<<endl;
结果是:
(空格)(空格)255
▲setfill(char c) 用法 : 就是在预设宽度中如果已存在没用完的宽度大小,则用设置的字符c填充
如 cout<<setfill('@')<<setw(5)<<255<<endl;
结果是:
@@255
▲setbase(int n) : 将数字转换为 n 进制.
如 cout<<setbase(8)<<setw(5)<<255<<endl;
cout<<setbase(10)<<setw(5)<<255<<endl;
cout<<setbase(16)<<255<<endl;
结果是:
(空格)(空格)377
(空格)(空格) 255
(空格)(空格) f f
▲ setprecision用法
使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。
如果与setiosnags(ios::scientific)合用, 可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
例如,下面的代码分别用浮点、定点和指数方式表示一个实数:
#include <iostream.h>
#include <iomanip.h> //要用到格式控制符
void main()
{
double amount = 22.0/7;
cout <<amount <<endl;
cout <<setprecision(0) <<amount <<endl
<<setprecision(1) <<amount <<endl
<<setprecision(2) <<amount <<endl
<<setprecision(3) <<amount <<endl
<<setprecision(4) <<amount <<endl;
cout <<setiosflags(ios::fixed);
cout <<setprecision(8) <<amount <<endl;
cout <<setiosflags(ios::scientific)
<<amount <<endl;
cout <<setprecision(6); //重新设置成原默认设置
}
运行结果为:
3.14286
3
3
3.1
3.14
3.143
3.14285714
3.14285714e+00
该程序在32位机器上运行通过。
在用浮点表示的输出中,setprecision(n)表示有效位数。
第1行输出数值之前没有设置有效位数,所以用流的有效位数默认设置值6:第2个输出设置了有效位数0,C++最小的有效位数为1,所以作为有效位数设置为1来看待:第3~6行输出按设置的有效位数输出。
在用定点表示的输出中,setprecision(n)表示小数位数。
第7行输出是与setiosflags(ios::fixed)合用。所以setprecision(8)设置的是小数点后面的位数,而非全部数字个数。
在用指数形式输出时,setprecision(n)表示小数位数。
第8行输出用setiosflags(ios::scientific)来表示指数表示的输出形式。其有效位数沿用上次的设置值8
setw(n)是设置域宽。
就是你的输出要占多少个字符
比如:
cout<<setw(5)<<12345<<endl;
就输出
12345
cout<<setw(6)<<12345<<endl;
输出
12345
而如果你要输出的字符宽度超出了setw(n)的n值,就按输出字符的宽度输出。
如你的cout<<setw(4)<<12.3456<<endl;
就输出12.3456
c++头文件iomanip.h中setw()、setprecision()、setbase用法示例详解相关推荐
- c++头文件iomanip.h中的setw、setprecision、setfill和setbase函数
#include <iostream> //不要用iostream.h ,会出现好多问题 #include <iomanip> // io 流控制头文件, 主要是一些 ...
- c++头文件iomanip.h中的setw、setprecision、setfill和setbase函数的使用
#include <iostream> //不要用iostream.h ,会出现好多问题 #include <iomanip> // io 流控制头文件, 主要是一些操纵用法如 ...
- 习题 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 ...
- go语言字符串换行_Go语言中的字符串处理方法示例详解
1 概述 字符串,string,一串固定长度的字符连接起来的字符集合.Go语言的字符串是使用UTF-8编码的.UTF-8是Unicode的实现方式之一. Go语言原生支持字符串.使用双引号(" ...
- docker导入MySQL文件_Docker容器中Mysql数据的导入/导出详解
前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的 ...
- python中3or5什么意思_示例详解Python3 or Python2 两者之间的差异
每门编程语言在发布更新之后,主要版本之间都会发生很大的变化. 在本文中,Vinodh Kumar 通过示例解释了 Python 2 和 Python 3 之间的一些重大差异,以帮助说明语言的变化. 本 ...
- c语言intrins函数,【转载】KEIL C 头文件INTRINS.H中的几个函数说明
原标题: [51单片机]keil C51中的本征函数库及使用说明 为方便自己查找,已将标题改名 原文来源:http://blog.163.com/hooyang@126/blog/static/118 ...
- C语言字符串头文件string.h中的strlen,strcat,strcpy,strncpy,strcmp,strlwr,strupr函数
前言 本博文内容基于VC6.0++, 2.本博文主要介绍包含在string.h中的几个字符串相关的函数: strlen(字符串数组名) 字符串有效长度函数: 返回值:整型 功能:用来测量一个字符串的有 ...
- mysql between详解_MySQL中BETWEEN子句的用法实例详解
这篇文章主要介绍了MySQL中BETWEEN子句的用法详解,是MySQL入门学习中的基础知识,需要的朋友可以参考下 可以使用IN子句来代替相结合的"大于等于和小于等于"的条件. 要 ...
最新文章
- PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1
- 李飞飞点赞「ARM」:一种让模型快速适应数据变化的元学习方法 | 开源
- 产品经理应该掌握的信息架构知识
- yolo opencv_如何使用Yolo,SORT和Opencv跟踪足球运动员。
- python中csv模块是自带的吗_python csv模块 Python的CSV模块,怎么新建为添加模式
- 介电常数和电容的关系_第二章:关于电力基础物理知识之认识电容器01
- 安装ssd后不识别网卡_群晖E10M20-T1:你以为它是张网卡,其实它还带俩SSD
- nginx工作原理详解
- Tomcat 修改端口号
- 卡贴机变无锁教程_有锁机变无锁教程 教你轻松设置去掉卡贴有锁机变无锁完美4G...
- 【C++】C++PrimerPlus(第6版)中文版 第9章 内存模型和名称空间 编程练习 参考答案
- 知道创宇赵伟乌镇演讲:以云护云、以云治云,构建云端安全治理体系
- RFID资产管理|超高频RFID技术在医院资产管理项目中的应用-铨顺宏
- To install spack and your first package
- 连续复利怎么用计算机算,请问银行的连续复利计算公式
- 太强了!Java毕业设计分享—基于Java开发的毕业设计实战项目(含源码+论文)
- RabbitMQ与Erlang版本对应关系
- Linux挂载命令mount 详解
- Json和Json解析
- HDU 5445 Food Problem(多重背包)
热门文章
- 王学岗——————H265实现低延时投屏,从零实现高清无损投屏(对应第六节课)
- 吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第二节:神经网络基础(上)
- 【Matplotlib】三维图及其俯视图+colorbar的位置调整与颜色、刻度细化
- Kubernetes 故障解之(Failed to find subsystem mount for required subsystem: pids)
- less 和 sass 配置
- 破解Access数据库
- 一文读懂命名实体识别
- android多线程处理的方法以及应用场景
- Ubuntu18.04忘记密码解决(八十七)
- 基于C++的AGV机器人无线控制实现