#include <iostream.h> int main(void) { int i, j; int a = 125; for (j = 0; j <= 2; j++) { for (i = 0; i <= 9; i++) { cout << i; } } cout << endl; cout.width(8); cout << a << endl; cout.width(10); cout << a << endl; cout << a << endl;//この時もうwidth(10)は無効 cout.width(10); cout.setf(ios::showpos); cout << a << endl; cout << a << endl;//showposは有効 cout.unsetf(ios::showpos); cout.width(10); cout.fill('0');//あいている桁を0で埋める cout << a << endl; cout.width(20); cout << a << endl; cout.width(20); cout.fill('-'); cout << a << endl; return 0; }
実行結果は左の図のようになります。
上のプログラムはたいして難しくはないですね。
つぎは、ios::right, ios::left, ios::internalですが、 これは、ios::adjustfieldとともに使います。 多分想像がつくと思いますが、rightは右詰、leftは 左詰の意味です。internalというのはなかなか想像するのが 難しいのですが、まず記号を出力、次にfillで指定された 文字があれば出力するというものです。これも 例題を示した方がわかりやすいですね。
#include <iostream.h> int main(void) { int a = 123; char *str = "ABC"; cout.width(10); cout.setf(ios::left, ios::adjustfield); cout << a << endl; //結果としては目に見えない cout.width(10); cout.setf(ios::right, ios::adjustfield); cout << a << endl;//右詰になるので空白があく cout.width(10); cout.fill('_'); cout.setf(ios::showpos); cout.setf(ios::internal, ios::adjustfield); cout << a << endl;//最初に「+」記号次に「_」が出力される cout.width(10); cout << str << endl;//strにたいしても有効です return 0; }
結果は、左の通りです。簡単ですね。
さて、次は浮動小数の表し方です。
ios::scientific, ios::fixedこの2つは ios::floatfieldとともに使います。 これも何となく想像がつきますね。 scientificの方は、科学技術計算用 つまり、指数表記(3.15e+004など) となります。fixedの方は固定小数点表記です。 例題を見てみましょう。
#include <iostream.h> int main(void) { double a = 123.456; double b = 256.0; cout << a << endl; cout << b << endl;//小数点以下0なのでピリオドは表示されない cout.width(15); cout.setf(ios::right, ios::adjustfield); cout << a << endl; cout.width(15); cout << b << endl; cout.setf(ios::showpoint); cout << b << endl;//小数点以下0でもピリオド表示 cout.setf(ios::scientific, ios::floatfield); cout << b << endl; //指数表記 cout.setf(ios::fixed, ios::floatfield); cout << b << endl; //固定小数表記 return 0; }
さて、結果は左の通りですが、
一つ疑問が残りますね。それは、ios::showpointの
ときとios::fixedの場合で小数の精度が違っていませんか。
これは、処理系によっても結果が違うようです。
自分のコンパイラのヘルプやら、マニュアルで確認して
下さい。
Update Feb/08/1997 By Y.Kumei