[学习笔记][C++Primer Plus]使用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; } |