Light C | ← → 目次 索引 |
sprintf、vsprintf、printf などの関数では、% を使用して、出力するデータの書式を指定します。たとえば、次のようになります。
printf( "%s", "123" ); | // → "123" | |
printf( "%4d", 456 ); | // → " 456" | |
printf( "%05X", 254 ); | // → "000FE" | |
printf( "%-5s", "abc" ); | // → "abc " | |
printf( "%f", 12.56637061 ); | // → "12.566371" | |
printf( "%.2f", 12.56637061 ); | // → "12.56" | |
printf( "%e", 12.56637061 ); | // → "1.256637e+001" | |
printf( "%g", 12.56637061 ); | // → "12.5664" | |
printf( "xyz%n", &i ); | // i に出力バイト数 (3) が入る |
出力変換指定子の構文は、次のとおりです。
%[flags][width][.precision][modifier]type
- | 出力内容より width が大きい場合に、左に寄せて出力します。出力内容より width が小さい場合は、効果がありません。 |
+ | 負でない数に「+」を付加します。type が数値でなければ無視されます。 |
(空白) | 同上 |
# | 型がわかる形式で数値を出力します。
|
, | 整数を 3 桁ごとにカンマ (,) で区切ります。[LC] |
(数字) | 出力全体の桁数を指定します。先頭に 0 を付けると、余分な桁は文字 0 で埋められます。それ以外の場合は、スペース文字で埋められます。 | ||
* | 次の int 型の引数で渡された値が使用されます。値が負の場合は、左寄せになります。
|
(数字) | 出力桁数を指定します。負の precision は無視されます。ピリオドだけを記述して数値を省略すると、0 と見なされます。効果は type によって異なります。
| |||
* | 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 変数に、これまでに出力したバイト数を格納します。
|
メモ 1 % 自体を出力するには、「%%」と記述します。
メモ 2 char 型の数値は、関数に渡されるときに自動的に int 型に変換されるため (汎整数拡張)、int 型と同じように「%d」、「%X」などを使って表示できます。
メモ 3 float 型の数値は、関数に渡されるときに自動的に double 型に変換されるため、double 型と同じように「%f」、「%e」などを使って表示できます。
参照 入力変換指定子
Copyright © Tama Software Ltd, 1999-2012. | ← → 目次 索引 |