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用法示例详解相关推荐

  1. c++头文件iomanip.h中的setw、setprecision、setfill和setbase函数

    #include <iostream>   //不要用iostream.h ,会出现好多问题 #include <iomanip>    // io 流控制头文件, 主要是一些 ...

  2. c++头文件iomanip.h中的setw、setprecision、setfill和setbase函数的使用

    #include <iostream> //不要用iostream.h ,会出现好多问题 #include <iomanip> // io 流控制头文件, 主要是一些操纵用法如 ...

  3. 习题 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 ...

  4. go语言字符串换行_Go语言中的字符串处理方法示例详解

    1 概述 字符串,string,一串固定长度的字符连接起来的字符集合.Go语言的字符串是使用UTF-8编码的.UTF-8是Unicode的实现方式之一. Go语言原生支持字符串.使用双引号(" ...

  5. docker导入MySQL文件_Docker容器中Mysql数据的导入/导出详解

    前言 Mysql数据的导入导出我们都知道一个mysqldump命令就能够解决,但如果是运行在docker环境下的mysql呢? 解决办法其实还是用mysqldump命令,但是我们需要进入docker的 ...

  6. python中3or5什么意思_示例详解Python3 or Python2 两者之间的差异

    每门编程语言在发布更新之后,主要版本之间都会发生很大的变化. 在本文中,Vinodh Kumar 通过示例解释了 Python 2 和 Python 3 之间的一些重大差异,以帮助说明语言的变化. 本 ...

  7. c语言intrins函数,【转载】KEIL C 头文件INTRINS.H中的几个函数说明

    原标题: [51单片机]keil C51中的本征函数库及使用说明 为方便自己查找,已将标题改名 原文来源:http://blog.163.com/hooyang@126/blog/static/118 ...

  8. C语言字符串头文件string.h中的strlen,strcat,strcpy,strncpy,strcmp,strlwr,strupr函数

    前言 本博文内容基于VC6.0++, 2.本博文主要介绍包含在string.h中的几个字符串相关的函数: strlen(字符串数组名) 字符串有效长度函数: 返回值:整型 功能:用来测量一个字符串的有 ...

  9. mysql between详解_MySQL中BETWEEN子句的用法实例详解

    这篇文章主要介绍了MySQL中BETWEEN子句的用法详解,是MySQL入门学习中的基础知识,需要的朋友可以参考下 可以使用IN子句来代替相结合的"大于等于和小于等于"的条件. 要 ...

最新文章

  1. PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头1
  2. 李飞飞点赞「ARM」:一种让模型快速适应数据变化的元学习方法 | 开源
  3. 产品经理应该掌握的信息架构知识
  4. yolo opencv_如何使用Yolo,SORT和Opencv跟踪足球运动员。
  5. python中csv模块是自带的吗_python csv模块 Python的CSV模块,怎么新建为添加模式
  6. 介电常数和电容的关系_第二章:关于电力基础物理知识之认识电容器01
  7. 安装ssd后不识别网卡_群晖E10M20-T1:你以为它是张网卡,其实它还带俩SSD
  8. nginx工作原理详解
  9. Tomcat 修改端口号
  10. 卡贴机变无锁教程_有锁机变无锁教程 教你轻松设置去掉卡贴有锁机变无锁完美4G...
  11. 【C++】C++PrimerPlus(第6版)中文版 第9章 内存模型和名称空间 编程练习 参考答案
  12. 知道创宇赵伟乌镇演讲:以云护云、以云治云,构建云端安全治理体系
  13. RFID资产管理|超高频RFID技术在医院资产管理项目中的应用-铨顺宏
  14. To install spack and your first package
  15. 连续复利怎么用计算机算,请问银行的连续复利计算公式
  16. 太强了!Java毕业设计分享—基于Java开发的毕业设计实战项目(含源码+论文)
  17. RabbitMQ与Erlang版本对应关系
  18. Linux挂载命令mount 详解
  19. Json和Json解析
  20. HDU 5445 Food Problem(多重背包)

热门文章

  1. 王学岗——————H265实现低延时投屏,从零实现高清无损投屏(对应第六节课)
  2. 吴恩达深度学习deeplearning.ai——第一门课:神经网络与深度学习——第二节:神经网络基础(上)
  3. 【Matplotlib】三维图及其俯视图+colorbar的位置调整与颜色、刻度细化
  4. Kubernetes 故障解之(Failed to find subsystem mount for required subsystem: pids)
  5. less 和 sass 配置
  6. 破解Access数据库
  7. 一文读懂命名实体识别
  8. android多线程处理的方法以及应用场景
  9. Ubuntu18.04忘记密码解决(八十七)
  10. 基于C++的AGV机器人无线控制实现