| 指定子 | 対応する型 | 説明 | 使用例 |
|---|---|---|---|
| %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 が入る |