C++输出格式控制方法(有例子)

**

C++输出格式控制

**

文章转载于http://www.cnblogs.com/leewiki/archive/2011/12/13/2286168.html

setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6,所以不管数据是多少,都只输出六位。如果setprecision(n)与setiosflags(ios::fixed)或者setiosflags(ios_base::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。 如果与setiosnags(ios::scientific)合用,可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。
I/O流常用控制符:
使用控制符时,在程序开头加投文件#include C++有两种方法控制格式输出:1、用格式控制符;2、用流对象的成员函数 格式控制符:
dec 设置基数为10
hex 设置基数为16
oct 设置基数为8
setfill© 设置填充字符c
setprecision(n) 设置显示小数精度为n位
setw(n) 设置域宽为n个字符
setiosflags(ios::fixed) 固定的浮点显示
setiosflags(ios::scientific) 指数表示
setiosflags(ios::left) 左对齐
setiosflags(ios::right) 右对齐
setiosflags(ios::skipws) 忽略前导空白
setiosflags(ios::uppercase) 16进制数大写输出
setiosflags(ios::lowercase) 16进制小写输出
成员函数:
flags(10) 设置基数为10
flags(16) 设置基数为16
flags(8) 设置基数为8
flags© 设置填充字符c
precision(n) 设置显示小数精度为n位
width(n) 设置域宽为n个字符
在新版本的c++中头文件已经用iomanip取代了iomanip.h。

以下是一些常用的函数:

dec 置基数为10 相当于"%d"

hex 置基数为16 相当于"%X"

oct 置基数为8 相当于"%o"

setfill© 设填充字符为c

setprecision(n) 设显示小数精度为n位

setw(n) 设域宽为n个字符

setiosflags(ios::fixed) 固定的浮点显示

setiosflags(ios::scientific) 指数表示

setiosflags(ios::left) 左对齐

setiosflags(ios::right) 右对齐

setiosflags(ios::skipws 忽略前导空白

setiosflags(ios::uppercase) 16进制数大写输出

setiosflags(ios::lowercase) 16进制小写输出

setiosflags(ios::showpoint) 强制显示小数点

setiosflags(ios::showpos) 强制显示符号

下面是一些实例

#include <iostream>
#include <iomanip>
using namespace std;
int main ()
{
    double a=123456.343001;
    cout<<"a的值为123456.343001"<<endl<<endl; 
    cout<<"不做任何操作,默认情况下只显示6六位数据:"<<a<<endl<<endl;
    cout<<"指定10位小数且为浮点数表示setiosflags(ios::fixed):"<<setiosflags(ios::fixed)<<setprecision(10)<<a<<endl<<endl;
    cout<<"指定为10位小数且为指数形式表示setiosflags(ios::scientific),就是留下有效位:如何指定的有效位超过本来的有效位,其输出就是本身的位数:"<<setiosflags(ios::scientific)<<setprecision(12)<<a<<endl<<endl;
    cout<<"指定为10位小数且为指数形`在这里插入代码片`式表示setiosflags(ios::scientific),就是留下有效位:setprecision(10)指定留下10位有效位"<<setiosflags(ios::scientific)<<setprecision(10)<<a<<endl<<endl;
    cout<<"左对齐:"<<setiosflags(ios::left)<<setprecision(20)<<a<<endl<<endl;
    cout<<"右对齐:"<<setiosflags(ios::right)<<setprecision(20)<<a<<endl<<endl;
    system("pause");
    return 0;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值