最小幅

広告

フォーマット指定子のオプションの1つである最小幅について確認します。

%[フラグ][最小幅][.精度/最大幅]型指定子

結果として取得できる文字列の最小の幅を指定します。結果が最小幅よりも少ない場合は空白や0詰めなどで埋められます。また、結果が最小幅よりも大きい場合には最小幅の設定に関わらず必要な幅となります。

使い方は次のようになります。

printf("[%5d]¥n", 30);
printf("[%#5o]¥n", 30);

型変換子との組み合わせの他に、フラグと最小幅を同時に設定することも可能です。

なおフラグによって正の数の前に「+」を付けたり、16進数の前に「0x」を付けた場合などは、これらのフラグによって付加された文字も含めた結果に対して最小幅の設定が行われます。

サンプルプログラム

では簡単なプログラムで確認して見ます。

test5-1.pl

use strict;
use warnings;
use utf8;
binmode STDIN, ':encoding(cp932)';
binmode STDOUT, ':encoding(cp932)';
binmode STDERR, ':encoding(cp932)';

printf("[%d]¥n", 30);
printf("[%5d]¥n", 30);
printf("[%5d]¥n", -30);
printf("[%-5d]¥n", -30);
printf("[%#o]¥n", 30);
printf("[%#5o]¥n", 30);
printf("[%#x]¥n", 30);
printf("[%#5x]¥n", 30);
printf("[%#b]¥n", 2);
printf("[%#5b]¥n", 2);
printf("[%15e]¥n", 12.3);
printf("[%15f]¥n", 12.3);
printf("[%3d]¥n", 760128);

上記を「test5-1.pl」の名前で保存します(文字コードはUTF-8です)。そしてコマンドプロンプトを起動し、プログラムを保存したディレクトリに移動してから次のように実行して下さい。

最小幅

( Written by Tatsuo Ikura )