格式化输出[parts/iomanip]
/*
用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]的更多相关文章
- cout 格式化输出
一直习惯于C语言的printf函数来打印,突然有一天要用cout来打印,发现有点不适应. 原来cout也是有格式化输出的. 首先要引入头文件 #include<iostream> // 在 ...
- [转载] c++ cout 格式化输出浮点数、整数及格方法
C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...? 下面的方法是在网上找到的,如果各位有别的办法谢谢留下... iomanip.h是I/O流控制头文件,就像C里面的格式 ...
- C++学习 cout的格式化输出
cout的格式化输出 1.常用: ①double 输出到小数点后n位:(保留精度 n位) #include <iostream> #include <iomanip> usin ...
- C++格式化输出浮点数
主要内容 介绍C++中如何格式化输出浮点数. 控制浮点数输出格式需要包含iomanip头文件. 使用fixed来控制输出的浮点数的小数位是固定的.可参考http://en.cppreference.c ...
- C++ cout格式化输出(转)
C++ cout格式化输出(转) 这篇文章主要讲解如何在C++中使用cout进行高级的格式化输出操作,包括数字的各种计数法(精度)输出,左或右对齐,大小写等等.通过本文,您可以完全脱离scanf/pr ...
- [ZZ]c++ cout 格式化输出浮点数、整数及格式化方法
C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...?下面的方法是在网上找到的,如果各位有别的办法谢谢留下... iomanip.h是I/O流控制头文件,就像C里面的格式化 ...
- C++ cout 格式化输出方法
C语言里可以用printf(),%f来实现浮点数的格式化输出,用cout呢...? iomanip是I/O流控制头文件,就像printf的格式化输出一样. 以下是一些常用的: dec 置基数为10 相 ...
- C++输入输出流 cin/cout 及格式化输出简介
C++ 可通过流的概念进行程序与外界环境( 用户.文件等 )之间的交互.流是一种将数据自源( source )推送至目的地( destination )的管道.在 C++ 中,与标准输入/输出相关的流 ...
- C++ cout格式化输出完全攻略
写算法题的时候突然发现自己忘记基本的C++:cout格式化输出了,赶紧拉出以前的C++学习笔记重新看一看. 部分内容来自教程:C语言中文网(一个很棒的网站) 有时希望按照一定的格式进行输出,如按十六进 ...
随机推荐
- MySQL查询昨天、今天、7天、近30天、本月、上一月数据
文章同步发表在博主网站朗度云,传输门:http://www.wolfbe.com/detail/201608/291.html 在开发或者统计时,我们可能需要统计某个表的数据.比如:查看今天新增的 ...
- 在信号处理函数中调用longjmp
错误情况及原因分析 前两天看APUE的时候,有个程序要自己制作一个sleep程序,结果在这个程序中就出现了在信号处理函数中调用longjmp函数的情况,结果就出现了错误,具体错误是啥呢,请参见下面这段 ...
- 使用userdel命令删除Linux用户
serdel是什么 userdel 是一个底层用于删除用户的工具.在 Debian 上,我们通常会使用 deluser 命令.userdel 会查询系统账户文件,例如 /etc/password 和 ...
- 查看Linux系统版本信息
一.查看Linux内核版本命令(两种方法): 1.cat /proc/version [root@S-CentOS home]# cat /proc/versionLinux version 2.6. ...
- 已经导入了具有相同的简单名称“Interop.DSOFramer, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null”的程序集。
错误 : 已经导入了具有相同的简单名称“Interop.DSOFramer, Version=1.3.0.0, Culture=neutral, PublicKeyToken=null”的程序集. ...
- SQL SERVER连接字符串学习
在使用connection string时遇到一些问题 字符串如下"Data Source= ******;Initial Catalog=******;Persist Security I ...
- echarts简单使用案例
先上效果图:
- Git客户端图文详解如何安装配置GitHub操作流程攻略
收藏自 http://www.ihref.com/read-16377.html Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具; 保存点 : ...
- C++求斐波那契数
题目内容:斐波那契数定义为:f(0)=0,f(1)=1,f(n)=f(n-1)+f(n-2)(n>1且n为整数) 如果写出菲氏数列,则应该是: 0 1 1 2 3 5 8 13 21 34 …… ...
- 关于VS2012下安装破解文件Visual Assit X的一点说明
今天在使用Visual Studio 2012的时候,编写代码的助手Visual Assit X突然提示我说,试用期已过,要求我输入一个注册码,我靠,这货不是几个月前已经破解了吗,怎么今天傻不愣登的提 ...