c++ cout 格式化输出
2008-07-25 11:07 Iron 阅读(1631) 评论(0) 编辑 收藏 举报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;
} 转自http://www.cnblogs.com/xuzhong/archive/2007/07/11/389108.html |