/*
用ios类中的成员函数来进行IO格式的控制总需要写一条单独的语句,而不能直接嵌入到IO语句中,显得很不方便,因此C++又提供了一种用操作符来控制IO的格式。操作符分为带参和不带参两种,带参的定义在头文件iomanip中,不带参的定义在头文件iostream中

首先看一下定义在头文件iostream中的不带参的流操作符
boolalpha      使用文本形式输出bool型数值(即输出true或false)
fixed          定点格式输出,即以小数点的形式表示浮点数
scientific        用科学记数法表示浮点数
dec            采用十进制,用于输入和输出
oct          采用八进制,用于输入和输出
hex            采用十六进制,用于输入和输出
internal          输出格式为居中对齐
right          输出格式为右对齐
left            输出格式为左对齐
showpos        在正数前面加上+号
showpoint     显示末尾的0
showbase      显示进制,即在十六进制数前添加0x,在八进制数前添加0
uppercase     大写显示
unitbuf       每次执行输出操作后均会清空缓冲区,如cout<<unitbuf<<"Test"<<"File";会刷新缓冲区两次
skipws        忽略输入流中的空白字符,即当我们输入的字符前面有空格时,存储的时候会自动忽略
以上15个即是标准控制符,它们可以自动调用setf()函数并提供正确的参数,因此可以直接使用

noboolalpha
noshowpos
noshowpoint
noshowbase
nouppercase
nounitbuf
noskipws
指示标志位ios::basefield、ios::adjustfield、ios::floatfield可以清除相应的8个标志位,剩下的7个标志位除了可以通过unsetf()清除,还可以通过以上7个命令清除相应标志位

ws 跳过输入的空格符,用于输入
endl 输出一个换行符并刷新输出流,用于输出
ends 输出一个空字符null,通常用来结束一个字符串,用于输出
flush 刷新输出流,用于输出

注:null和'\0'的区别:'\0'和null的值都是0,但'\0'指的是空字符串,用于判断字符串结束;而null指的是空指针,用于判断指针指向的对象是否为空

接下来看一下定义在头文件iomanip中的带参的流操作符
setw(n)                   同ios类中的成员函数width(),设置字段宽度,用于输出
setfill(c)                同ios类中的成员函数fill(),设置填充字符为c(默认为空格,一次有效),用于输出
setprecision(n)          同ios类中的成员函数precision(),用于输出 
setbase(n)            设置整数的基数为n(n可取0或10代表十进制,8代表八进制,16代表十六进制,默认为0),用于输入和输出
setiosflags(fmtflag)     设置标志位,多个用"|"隔开,用于输入和输出
resetiosflags(fmtflag)    清除指定标志位,多个用"|"隔开,用于输入和输出

*/

#include <iostream>
using namespace std;
int main()
{
  int x;
  cin>>hex>>x;       //采用十六进制进行输入(16)
  cout<<x<<endl;       //默认采用十进制进行输出(22)
  cin>>x;         //由于前面的cin>>hex会自动调用setf(ios::hex),而setf()会一直生效,因此这里仍采用十六进制进行输入(16)
  cout<<x<<endl;    //默认采用十进制进行输出(22)
  cin>>oct>>x;      //这里会自动调用setf(ios::oct|ios::basefield),采用八进制进行输入(16)
  cout<<x<<endl;      //默认采用十进制进行输出(14)   cout<<'a';
  cout<<'b'<<ends;    //ends用于输出一个空字符null
  cout<<'c'<<endl;    //endl用于输出一个换行符,并刷新输出流(ab c)   bool b=;
  cout<<boolalpha<<b<<endl;    //true
  cout<<noboolalpha<<b<<endl;   //   return ;
}

格式化输出[parts/iomanip]的更多相关文章

  1. cout 格式化输出

    一直习惯于C语言的printf函数来打印,突然有一天要用cout来打印,发现有点不适应. 原来cout也是有格式化输出的. 首先要引入头文件 #include<iostream> // 在 ...

  2. [转载] c++ cout 格式化输出浮点数、整数及格方法

    C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...? 下面的方法是在网上找到的,如果各位有别的办法谢谢留下... iomanip.h是I/O流控制头文件,就像C里面的格式 ...

  3. C++学习 cout的格式化输出

    cout的格式化输出 1.常用: ①double 输出到小数点后n位:(保留精度 n位) #include <iostream> #include <iomanip> usin ...

  4. C++格式化输出浮点数

    主要内容 介绍C++中如何格式化输出浮点数. 控制浮点数输出格式需要包含iomanip头文件. 使用fixed来控制输出的浮点数的小数位是固定的.可参考http://en.cppreference.c ...

  5. C++ cout格式化输出(转)

    C++ cout格式化输出(转) 这篇文章主要讲解如何在C++中使用cout进行高级的格式化输出操作,包括数字的各种计数法(精度)输出,左或右对齐,大小写等等.通过本文,您可以完全脱离scanf/pr ...

  6. [ZZ]c++ cout 格式化输出浮点数、整数及格式化方法

    C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...?下面的方法是在网上找到的,如果各位有别的办法谢谢留下... iomanip.h是I/O流控制头文件,就像C里面的格式化 ...

  7. C++ cout 格式化输出方法

    C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...? iomanip是I/O流控制头文件,就像printf的格式化输出一样. 以下是一些常用的: dec 置基数为10 相 ...

  8. C++输入输出流 cin/cout 及格式化输出简介

    C++ 可通过流的概念进行程序与外界环境( 用户.文件等 )之间的交互.流是一种将数据自源( source )推送至目的地( destination )的管道.在 C++ 中,与标准输入/输出相关的流 ...

  9. C++ cout格式化输出完全攻略

    写算法题的时候突然发现自己忘记基本的C++:cout格式化输出了,赶紧拉出以前的C++学习笔记重新看一看. 部分内容来自教程:C语言中文网(一个很棒的网站) 有时希望按照一定的格式进行输出,如按十六进 ...

随机推荐

  1. C++读取ini文件的类

    取自:http://www.viksoe.dk/code/all_mfc.htm,里面有各种MFC常用的类 // Ini.h: interface for the CIni class. // // ...

  2. Sqlserver替换函数Replace

    Sqlserver中Replace函数:实现字段中某个字符串批量替换. 注意:强烈建议替换前备份数据库以免发生灾难性后果. update article set [Content]=replace([ ...

  3. CentOS6.5_python2.7.3下virt-manager无法启动

    配置virt-manager: 1.安装virt-manager, libvirt, qemu-kvm 2.配置libvirtd开机启动: chkconfig libvirtd on   #取消开机启 ...

  4. zencart安装第三步出现空白

    问题描述:在安装zencart时,在第三步同意协议,然后点击下一步时,页面经过漫长的等待后就显示空白. 解决方法:打开php.ini,将max_execution_time = 30 -> ma ...

  5. winform中嵌入Ppt、Word、Excel

    1.下载DsoFramer_KB311765_x86.exe 2.安装,默认路径安装C:\DsoFramer. 3.注册:开始菜单——>运行 输入:regsvr32 C:\DsoFramer\d ...

  6. Sliverlight中PagedCollectionView的使用

    最近项目中一直在和PagedCollectionView这个类打交道.通过它,我们可以以分页的形式自动处理并显示集合中的片段,尤其是和Pager控件配合的时候更能彰显其威力. PagedColecti ...

  7. 原生jdbc执行存储过程

    //定时任务,结转 . //表名 fys_sch_lvyou2 ,存储过程名:fys_sch_lvyou2_carrayover //无参调用:{call insertLine} //有参调用:{ca ...

  8. Hbase负载均衡流程以及源码

    hmater负责把region均匀到各个region server .hmaster中有一个线程任务是专门处理负责均衡的,默认每隔5分钟执行一次. 每次负载均衡操作可以分为两步: 生成负载均衡计划表 ...

  9. Win7、win2008中让IIS7支持asp的方法

    Win7或Windows server 2008中IIS7支持ASP+Access解决方法.  1. 让IIS7支持ASP  Win7或Windows server 2008中IIS7是默认不安装的, ...

  10. 关于js一般对象与标配对象

    当一个js函数对象被创建时,Function 构造器产生的函数对象会运行类似这样的一些代码 this.prototype={constructor:this} 新函数被赋予了一个prototype属性 ...