CPP-如何使用cout格式化输出字符串

cout是比较常用的功能,应该了解它的一些特性。

/********************************************************************
    created:    2012/05/24
    created:    24:5:2012   23:33
    filename: e:\work\C++\输入输出和文件\CoutFormatSample.cpp
    file path: e:\work\C++\输入输出和文件
    file base: CoutFormatSample
    file ext:   cpp
    author:     xuzhong
    
    purpose:    
*********************************************************************/

#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/ReViSion/archive/2008/01/10/2032797.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值