【C言語入門】fprintf関数等のformatパラメータについて

こんにちは、もがちゃんです

fprintf関数、printf関数、sprintf関数のformatパラメータについて記載します

formatパラメータの構成

formatが指す文字列(書式)は、以下の2つの文字列から構成されます

  • 通常の文字列
  • 変換指定文字列

変換指定文字列の形式

変換指定文字列の形式は、以下の形式で指定します

%[フラグ][フィールド幅][.精度][長さ修飾子]変換指定子

※[]で括られている部分は省略可能

変換指定文字列のフラグについて

変換指定文字列のフラグには、以下の種類が存在します

フラグフラグの意味
-(マイナス)変換結果をフィールド内に左詰めにする
+(プラス)変換結果が正,負に関わらず符号を出力する
(空白)変換結果の最初の文字が符号でない場合か
符号付き変換の結果が 0 の場合に空白を結果の前に付ける
#(シャープ)結果を代替形式に変換する
0(ゼロ)出力文字数が最小フィールド幅未満の場合は 0 を埋める
フラグの種類
代替形式

代替形式は、変換指定子ごとに以下の変換が行われます

変換指定子変換指定子に対する代替形式意味
o(オー)必要な場合に精度を増加し結果の最初を 0 にする
x,X0 でない結果の前に 0x を置く
f,F
e,E
a,A
小数点文字の後ろに数字が続かない場合でも
常に小数点文字を表示する
g,G小数点文字の後ろに数字が続かない場合でも
常に小数点文字を表示する.
後ろに続く 0 を結果から取り除かない
代替形式の意味

変換指定文字列の長さ修飾子について

変換指定文字列の長さ修飾子には、以下の種類が存在します

長さ修飾子長さ修飾子の意味
hh対応する実引数の型がchar型であることを指定する
h対応する実引数の型がshort int型であることを指定する
l(エル)対応する実引数の型がlong int型であることを指定する
ll(エルエル)対応する実引数の型がlong long int型であることを指定する
j対応する実引数の型がintmax_t型であることを指定する
z対応する実引数の型がsize_t型であることを指定する
t対応する実引数の型がptrdiff_t型であることを指定する
L対応する実引数の型がlong double型であることを指定する
長さ修飾子の種類

変換指定文字列の変換指定子について

変換指定文字列の変換指定子には、以下の種類があり、それぞれ変換内容が異なります

変換指定子変換指定子の意味
d,iint型を符号付き10進表記に変換する
ounsigned int型を符号なし8進表記に変換する
uunsigned int型を符号なし10進表記に変換する
xunsigned int型を符号なし16進数表記(abcdef)に変換する
Xunsigned int型を符号なし16進数表記(ABCDEF)に変換する
f,F浮動小数点数を表すdouble型を[-]ddd.ddd形式の10進表記に変換する
e,E浮動小数点数を表すdouble型を[-]d.ddde±dd形式の10進表記に変換する
g,G浮動小数点数を表すdouble型を有効けた数を指定する精度に従い
f,F形式 or e,E形式に変換する
a,A浮動小数点数を表すdouble型を[-]0xh.hhhp±d形式に変換する
hは16進文字
cint型をunsigned char型の文字に変換する
s文字型配列の先頭ポインタからnull終端の前までの文字列に
変換する
pvoid型ポインタの表示文字列に変換する
n符号付き整数型へのポインタに出力済み文字数を出力する
%%文字を出力する
変換指定子の種類

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA