zoukankan      html  css  js  c++  java
  • [学习笔记][C++Primer Plus]使用cout格式化输出字符串

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

    /********************************************************************

        created:    2006/04/29

        created:    29:4:2006   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;

     

    }

     

     

     





  • 相关阅读:
    html问题记录20180529
    html问题记录20180518
    html问题记录20180515
    Redis持久化--AOF
    Redis持久化--RDB
    Redis事件模型
    两个字符串的编辑距离-动态规划方法
    Reactor事件模型在Redis中的应用
    事件驱动模式--Reactor
    IO多路复用--总结
  • 原文地址:https://www.cnblogs.com/xuzhong/p/389108.html
Copyright © 2011-2022 走看看