#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;
}