C++ 输入输出流中控制符的用法

如果使用了控制符,程 序开头除了加<ios tream>头外,还 要加<iomanip >。
输入输出流的控制符
控 制 符作 用
dec设置整数为十进制
hex设置整数为八进制
oct设置整数为十六进制
setbase(n)设置整数为n进制(n=8,10,16)
setfill(n)

置字符填充,c可以是字符常或

符变量

setprecision(n)设置浮点数的效数字为
setw(n)设置字段宽度为n位
setiosflags(ios::fixed)设置浮点数以固定的小数位数显示
setiosflags(ios::scientific) 设置浮点数以科学计数法表示
setiosflags(ios::left)输出左对齐
setiosflags(ios::right)输出右对齐
setiosflags(ios::skipws)忽略前导空格
setiosflags(ios::uppercase)

在以科学计数法输出E与十六进制

输出X以大写输出,否则小写

setiosflags(ios::showpos)输出正数时显示"+"号
resetiosflags()

终止已经设置的输出格式状态,

在括号中应指定内容

//程序实例

#include <iostream>
#include <iomanip> //使用输入输出流控制符除了要加头文件<iostream>外,还要加<iomanip>头文件
using namespace std;

void testdouble()
{
double d1=12.345678901234567;
cout<<d1<<endl;
}

int main()
{
cout<<""123456"的十进制位:"<<dec<<123456<<",八进制为:"<<oct<<123456<<",十六进制为:"<<hex<<123456<<'n'<<endl;
//dec:返回数值的十进制,oct返回是指的八进制,hex返回数值的十六进制。
cout<<dec; //恢复为十进制格式
cout<<setfill('*')<<setw(10)<<setiosflags(ios::left)<<123456<<'n'<<endl; //setfill(c):设置字符填充,c可以是字符常或字符变量,只对本行有用。
// setw(n):设置字段宽度为n位,如果n小于所要返回的字符的宽度则保留字符原样输出,只对
//setiosflags(ios::left):左对齐,setiosflags(ios::right):右对齐

cout<<resetiosflags(ios::left); //终止已设置的输入输出流格式,本例去掉左对齐方式

double d=12.345678901234567;

testdouble(); //之前没有使用输入输出流控制符,d1默认格式输出(精度为6
cout<<setprecision(16)<<d<<endl; //设置浮点数的精度,n为有效数字,采用四则五入法舍位,setprecision(n)中,n小于等于16有效。
testdouble(); //之前使用了setprecision(),此函数保留前面的宽度设置。

cout<<setiosflags(ios::fixed)<<setprecision(17)<<d<<endl;
//setiosflags(ios::fixed):设置浮点数以固定的小数位数显示,8为8位小数,所指定的小数位如果大于小数本身小数位则补0

cout<<resetiosflags(ios::fixed);

cout<<setiosflags(ios::scientific)<<setiosflags(ios::uppercase)<<setprecision(4)<<d<<'n'<<endl;
// setiosflags(ios::scietific):用科学计数法表示,4为指定小数位分为四位,且第四位四舍五入。
//setiosflags(ios::uppercase) : 在以科学计数法输出E与十六进制输出X以大写输出,否则小写。

return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值