指定子 | 対応する型 | 説明 | 使用例 |
---|---|---|---|
%c | char | 1文字を出力する | "%c" |
%s | char * | 文字列を出力する |
"%8s", "%-10s" printf( "%s", "123" );// → "123" printf( "%-5s", "abc" ); // → "abc " |
%d | int, short | 整数を10進で出力する | "%-2d","%03d"printf( "%4d", 456 );// → " 456" |
%u | unsigned int, unsigned short | 符号なし整数を10進で出力する | "%2u","%02u" |
%o | int, short,unsigned int, unsigned short | 整数を8進で出力する | "%06o","%03o" |
%x | int, short,unsigned int, unsigned short | 整数を16進で出力する | "%04x"printf( "%05X", 254 );// → "000FE" |
%f | float | 実数を出力する |
"%5.2f" printf( "%f", 12.56637061 );// → "12.566371" printf( "%.2f", 12.56637061 ); // → "12.56" |
%e | float | 実数を指数表示で出力する |
"%5.3e" printf( "%e", 12.56637061 );// → "1.256637e+001" |
%g | float | 実数を最適な形式で出力する |
"%g" printf( "%g", 12.56637061 ); // → "12.5664" |
%ld | long | 倍精度整数を10進で出力する | "%-10ld" |
%lu | unsigned long | 符号なし倍精度整数を10進で出力する | "%10lu" |
%lo | long, unsigned long | 倍精度整数を8進で出力する | "%12lo" |
%lx | long, unsigned long | 倍精度整数を16進で出力する | "%08lx" |
%lf | double | 倍精度実数を出力する | "%8.3lf" |
- | 出力内容より width が大きい場合に、左に寄せて出力する。出力内容より width が小さい場合は、効果がありません。 |
+ | 負でない数に「+」を付加します。type が数値でなければ無視される。 |
(空白) | 同上 |
# | 型がわかる形式で数値を出力する。 |
8 進数 | 先頭に 0 が付加される。 |
16 進数 | 先頭に 0x または 0X が付加される。 |
浮動小数点数 | 必ず小数点が出力される。g または G 形式の場合は、末尾の不要な 0 も削除されません。 |
, | 整数を 3 桁ごとにカンマ (,) で区切ります。[LC] |
(数字) |
出力全体の桁数を指定します。 先頭に 0 を付けると、余分な桁は文字 0 で埋められる。 それ以外の場合は、スペース文字で埋められる。 |
* |
次の int 型の引数で渡された値が使用される。値が負の場合は、左寄せになります。 例 printf( "i=%*d\n", 10, i ); // i を 10 桁で表示 |
(数字) |
出力桁数を指定します。負の precision は無視される。 ピリオドだけを記述して数値を省略すると、0 と見なされる。 効果は type によって異なります。 整数 - 出力内容が指定桁数に満たない場合は、左側に文字 0 が補充される。 出力内容が指定桁数を超える場合は、効果がありません。precision が 0 で出力も 0 の場合は、何も出力されません。 既定値は 1 です。 例 printf( "%5.3d", 12 ); // " 012" と表示される f, e, E - 小数点以下の桁数を指定します。0 を指定すると、flags に # を指定しない限り、小数点も出力されません。既定値は 6 です。 g, G - 整数部と小数部を合わせた桁数を指定します。既定値は 6 です。 文字列 - 出力の最大桁数を指定します。 |
* | width と同様に、次の int 型の引数で渡された値を使用する。 |
h | type で整数を指定する場合に、引数が short 型であることを示す。Light C では int と short が同一なので、効果はない。 |
l | type で整数を指定する場合に、引数が long 型であることを示す。 |
L | type で小数を指定する場合に、引数が long double 型であることを示す。Light C では long double と double が同一なので、効果はない。 |
F | type で文字列 (s) またはポインタ (p) を指定する場合に、引数が far ポインタであることを示す。 |
N | type で文字列 (s) またはポインタ (p) を指定する場合に、引数が near ポインタであることを示す。 |
d | int 値を符号付き 10 進数として出力する。 |
i | d と同じです。 |
u | int 値を符号なし 10 進数として出力する。 |
X | int 値を符号なし 16 進数として出力する。10 ~ 15 の桁は 'A' ~'F' で表される。 |
x | int 値を符号なし 16 進数として出力する。10 ~ 15 の桁は 'a' ~'f' で表される。 |
o | int 値を符号なし 8 進数として出力する。 |
q | int 値を符号なし 4 進数として出力する。[LC] |
b | int 値を符号なし 2 進数として出力する。[LC] |
p | ポインタの値を 16 進数で出力する。 |
s | ヌル終端文字列へのポインタを受け取り、文字列を出力する。 |
c | int 値を文字として出力する。Shift-JIS の全角文字も出力できます。 |
S | ワイド文字列を出力する。 |
C | c と同じです。 |
f | double 値を通常の小数表現で出力する。 (例:12.566371)。 |
e | double 値を指数表現で出力する。(例:1.256637e+001)。 |
E | e の代わりに E を出力することを除き、e と同じ。 (例:1.256637E+001)。 |
g | 数値の大きさに応じて、f または e のいずれかの書式で出力します (例:12.5664、2.99792e+008)。数値の絶対値が大きすぎて precision の桁数に収まらない場合と、数値の絶対値が 0.0001 より小さい場合は、e 形式が使用される。それ以外の場合は、f 形式が使用される。 |
G | e の代わりに E を出力することを除き、g と同じ。 |
n | 次の引数で指される int 変数に、これまでに出力したバイト数を格納する。 例 printf( "xyz%n", &i ); // i に 3 が入る |