この章では変換指定文字について説明します。
以下がprintfの変換指定文字です。
この例では5を入力しているので567を
出力結果を見ていただくと2文字分のスペースが開いているのが分かります。
「%」と「d」の間に先頭の0を含めた数字を入れると表示幅を意味するのは上の例と同じです。
上の例と違うのは数値を右詰めで表示したときの余ったスペースは0で埋められることです。
この例は05を入力しているので567を右詰めで5桁で表示しますが、先頭の2文字分が開いてしまうので、その場合には0が入れられます。
では次の例をみてみましょう。
浮動小数点数の場合には小数点も入れた表示幅になりますので、この例では先頭の1文字分が開いてしまいます。
その場合にはスペースが入れられます。
出力結果の上から2つ目を見ていただくと1文字分のスペースが開いているのが分かります。
先ほどの例と違うのは数値を右詰めで表示したときの余ったスペースは0で埋められることです。
浮動小数点数の場合には小数点も入れた表示幅になりますので、この例では先頭の1文字分が開いてしまいます。
その場合には0が入れられます。出力結果の上から3つ目を見ていただくと1文字分のスペースが0で埋められているのが分かります。
例では9桁の表示幅で小数点以下は2桁で設定していますが、余りはスペースで埋められます。
以下の例で10進数である100を8進数と16進数に変えています。
int型の整数を16進数に変えるには
144の前の0が省略された形で出力されます。
64の前の0xが省略された形で出力されます。
次の例は0や0xを省略しないで表示させる例です。
16進数で0xを省略しないで表示するには%とxの間に#を付けます。
結果は以下の通りです。
結果は