使用cout格式化输出字符串

#include "StdAfx.h"
#include "./coutformatsample.h"
 
using namespace std;
 
// public
CCoutFormatSample::CCoutFormatSample(void)
{
}
 
CCoutFormatSample::~CCoutFormatSample(void)
{
}
 
 
void CCoutFormatSample::Run(void)
{
    this->P_17_3();
    this->P_17_4();
    this->P_17_5();
    this->P_17_6();
    this->P_17_7();
    this->P_17_8();
}
 
 
 
// private
 
// 例子在 P615 。修改显示时使用的计数系统
void CCoutFormatSample::P_17_3(void)
{
    cout << _T(" 17.3 修改显示时使用的计数系统") << endl << endl;
    cout << "Enter an integer : ";
    int n;
    // cin >> n;
    n = 255;
 
    dec(cout);              // cout << dec;
    cout << "dec : " << n << endl;
 
    oct(cout);              // cout << oct;
    cout << "oct : " << n << endl;
 
    hex(cout);              // cout << hex ;
    cout << "hex : " << n << endl;
 
    dec(cout);              // 不要影响其它人
 
    cout << endl << endl;
}
 
 
void CCoutFormatSample::P_17_4(void)
{
    cout << _T(" 17.4 调整字段宽度") << endl << endl;
 
    int w = cout.width(30);
    cout << "default field width = " << w << ":" << endl;
    cout.width(5);
    cout << "N" << ": ";
    cout.width(8);
    cout << "N * N" << ":" << endl;
 
    for(long i=1; i<=100; i*=10)
    {
        cout.width(5);
        cout << i << ": ";
        cout.width(8);
        cout << i * i << ":" << endl;
    }
 
    cout.width();
 
    cout << endl << endl;
}
 
 
// cout.fill的用法
void CCoutFormatSample::P_17_5(void)
{
    cout << _T(" 17.5 填充字符") << endl << endl;
    cout.fill('*');
 
    int w = cout.width(30);
    cout.width(5);
    cout << "N" << ": ";
    cout.width(8);
    cout << "N * N" << ":" << endl;
 
    for(long i=1; i<=100; i*=10)
    {
        cout.width(5);
        cout << i << ": ";
        cout.width(8);
        cout << i * i << ":" << endl;
    }
 
    cout.width();
 
 
    cout << endl << endl;
}
 
 
// cout.precision
void CCoutFormatSample::P_17_6(void)
{
    cout << _T(" 17.6 设置浮点数的显示精度") << endl << endl;
    float f1 = 23.3232;
    float f2 = 1.9 + 8.0 / 9.0;
 
    cout << "f1 = " << f1 << endl;
    cout << "f2 = " << f2 << endl;
 
    // 设置精度为2
    cout.precision(2);
 
    cout << "f1 = " << f1 << endl;
    cout << "f2 = " << f2 << endl;
 
    // 解除设定
    cout.precision();
    cout << endl << endl;
}
 
// cout.setf
void CCoutFormatSample::P_17_7(void)
{
    cout << _T(" 17.7 设置精度为2打印末位的0和小数点") << endl << endl;
    float f1 = 23.3232;
    float f2 = 1.9 + 8.0 / 9.0;
 
    cout << "f1 = " << f1 << endl;
    cout << "f2 = " << f2 << endl;
 
    // 设置精度为2打印末位的0和小数点
    cout.setf(ios_base::showpoint);
 
    cout << "f1 = " << f1 << endl;
    cout << "f2 = " << f2 << endl;
 
    // 解除设定
    cout.setf(ios_base::unitbuf);
    cout << endl << endl;
}
 
 
// cout.setf 高级用法
void CCoutFormatSample::P_17_8()
{
 
    cout << _T(" 17.7 setf 高级用法") << endl << endl;
 
    cout.setf(ios_base::showpos);
    cout << 63 << endl;
    cout.setf(ios_base::uppercase);
    cout << "A string" << endl;
    cout.setf(ios_base::showbase);
    cout << 437 << endl;
    cout.setf(ios_base::boolalpha);
    cout << true << endl;
    cout << false << endl;
 
    cout << endl << endl;
 
}


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sendy888/archive/2007/08/30/1765067.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值