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