概要
|
書式出力関数 (printf, fprintf など) に於いて、数値や文字列などを、出力変換仕様によって任意の文字列に変換し、出力可能である。
※以下のプログラム例、結果の _(下線)は、空白を示す。
|
形式
変換指定文字 | フラグ | 最小フィールド幅 | 精度 | 変換修飾子 | 変換指定子
|
---|
%
| + - (空白文字) # 0
| (10進数文字列) *
| .(10進数文字列) .* .
| h l ll L
| d,i,o,u x,X f,e,E,g,G c,s,p,n %
|
---|
フラグ
|
| 名称 | 説明 | プログラム例 | 結果
|
---|
+ | 符号フラグ | 正の値に+符号を付ける | printf("%+d", 0); | +0
- | 左詰めフラグ | 変換結果を左詰めにする | printf("%-2d", 0); | 0_
(空白文字) | 空白フラグ | 正の値に空白を付ける | printf("%_d", 0); | _0
# | 表記フラグ | 8進表記文字
16進接頭語
小数部分を省略しない
| printf("%#o", 8);
printf("%#x", 16);
printf("%#f", 0);
| 010
0x10
0.000000
0 | 0フラグ | 0詰めする | printf("%02d", 0); | 00
|
---|
|
---|
|
---|
|
---|
|
---|
|
最小フィールド幅
|
| 説明 | プログラム例 | 結果
|
---|
(10進数文字列) | 文字列で指定 | printf("%2d", 0); | _0
* | 引数で指定 | printf("%*d", 2, 0); | _0
|
---|
|
---|
|
精度
|
| 説明 | プログラム例 | 結果
|
---|
.(10進数文字列) | 文字列で指定 | printf("%.2d", 0); | 00
.* | 引数で指定 | printf("%.*d", 2, 0); | 00
|
---|
|
---|
|
変換修飾子
|
| 説明 | プログラム例 | 結果
|
---|
h | short int, unsigned short int に対応 | printf("%hu", 4294967295); | 65535
l | long int, unsigned long int に対応 | printf("%lu", 4294967295); | 4294967295
ll | long long int, unsigned long long int に対応 | printf("%llu", 18446744073709551615); | 18446744073709551615
L | long double に対応 | printf("%Lg", 0.123456789); | 0.123457
|
---|
|
---|
|
---|
|
---|
|
変換指定子
|
| 説明 | プログラム例 | 結果
|
---|
d,i | 10進 | printf("%d", 0); | 0
o | 8進 | printf("%#o", 8); | 010
u | 無符号 | printf("%u", -1); | 4294967295
x,X | 16進 | printf("%#x", 16); | 0x10
f | 浮動小数点 | printf("%f", 0.123456789); | 0.123457
e,E | 指数 | printf("%e", 123.); | 1.230000e+002
g,G | 実数変換 | printf("%g", 0.123456789); | 0.123457
c | 文字 | printf("%c", 0x61); | a
s | 文字列 | printf("%s", "abcdef"); | abcdef
p | ポインタ | char* p=0; printf("%p", p); | 00000000
n | 変換数変換 | (※Visual Studio では使用不可)
% | %変換 | printf("%%"); | %
|
---|
|
---|
|
---|
|
---|
|
---|
|
---|
|
---|
|
---|
|
---|
|
---|
|
---|
|
---|
※変換数変換は、Visual Studio 2010 では非対応
|
© GPU (Game Programming Unit)