C++输出操纵符

插入运算符(<<)

为所有标准C++数据类型预先设计的,用于传送字节到一个输出流对象

包含头文件"#include<iomanip>"


普通操纵符:

插入运算符与操纵符一起工作

很多操纵符都定义在ios_base类中

①dec、oct和hex操纵符,分别代表十进制,八进制和十六进制,使用方法:cout<<oct<<x<<endl;

  • cin>>hex>>a     相当于scanf("%x", &a);
  • cout<<hex<<a     相当于printf("%x", a);

②setw()和width()操纵符:用于设置对齐

  • setw()使用方法:cout<<setw(8)<<x<<endl 相当于printf("%8d\n", x),下同
  • width()使用方法:cout.width(1); cout<<x<<endl
  • 无论是setw()还是width(),都仅影响紧随其后的输出项,不持久

③setfill('0'):用于补0

  • cout<<setfill('0')<<setw(8)<<15<<endl 相当于printf("%08d\n", x)


setiosflags操纵符:

setiosflags的参数是该流的格式标志值,可用按位或"|"运算符进行组合

不同于上面的普通操纵符,setiosflags操纵符带来的效果是持久的,关闭需要resetiosflags操纵符

引用时必须包括ios_base::前缀

例如cout<<setiosflags(ios_base::right),在执行该语句后后面所有输出全部左对齐,直到执行resetiosflags(ios_base::left)为止

常用的setiosflags操纵符:

  • ios_base::skipws 在输入中跳过空白
  • ios_base::left:左对齐值,用填充字符填充右边
  • ios_base::right:右对齐值,用填充字符填充左边(默认对齐方式)
  • ios_base::internal:在规定的宽度内,指定前缀符号之后,数值之前,插入指定的填充字符
  • ios_base::dec:以十进制形式格式化数值(默认进制)
  • ios_base::oct:以八进制形式格式化数值
  • ios_base::hex:以十六进制形式格式化数值
  • ios_base::showbase:插入前缀符号以表明整数的数制
  • ios_base::showpoint:对浮点数值显示小数点和尾部的0
  • ios_base::uppercase:对于十六进制数值显示大写字母A到F,对于科学格式显示大写字母E
  • ios_base::showpos:对于非负数显示正号(“+”)
  • ios_base::scientific:以科学格式显示浮点数值
  • ios_base::fixed:以定点格式显示浮点数值(没有指数部分)
  • ios_base::unitbuf:在每次插入之后转储并清除缓冲区内容

精度:

  • 浮点数输出精度的默认值是6,例如:3466.98
  • 要改变精度:setprecision操纵
  • 如果不指定fixed或scientific,精度值表示有效数字位数
  • 如果设置了iosbase::fixed或iosbase::scientific精度值表示小数点之后的位数


#include<iostream>
#include<iomanip>
using namespace std;
double v[5] = {1.23, 35.37, 653.7, 4356.288};
int main(void)
{
	int i, x;
	cin>>hex>>x;
	cout<<dec<<x<<endl;		//输入A输出10
	cout<<setiosflags(ios_base::right);
	cout<<setiosflags(ios_base::fixed);
	for(i=0;i<=3;i++)
	{
		//cout.width(10);
		if(i==2)
		{
			cout<<resetiosflags(ios_base::right);		//关闭右对齐,开启左对齐
			cout<<setiosflags(ios_base::left);
		}
		cout<<setw(10)<<setprecision(3)<<v[i]<<endl;
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值