🌕
printfで%dを出力する際の「フィールド幅と精度」のよる出力変化
整数が正の場合
小の大きさを1。
中の大きさを3。
大の大きさを5とする。
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
("[%1.3d]\n", 11111) |
[11111 ] |
小 | 中 | 大 | --- | --- | --- |
("[%1.5d]\n", 111) |
[00111] |
小 | 大 | 中 | --- | 精度 - 整数の桁数 | --- |
("[%3.1d]\n", 11111) |
[11111] |
中 | 小 | 大 | --- | --- | --- |
("[%3.5d]\n", 1) |
[00001] |
中 | 大 | 小 | --- | 精度 - 整数の桁数 | --- |
("[%5.1d]\n", 111) |
[ 111] |
大 | 小 | 中 | フィールド幅 - 整数の桁数 | --- | --- |
("[%5.3d]\n", 1) |
[ 001] |
大 | 中 | 小 | フィールド幅 -精度 | 精度 - 整数の桁数 | --- |
("[%3.3d]\n", 1) |
[001] |
中 | 中 | 小 | --- | 精度 - 整数の桁数 | --- |
("[%3.3d]\n", 11111) |
[11111] |
中 | 中 | 大 | --- | --- | --- |
("[%1.3d]\n", 111) |
[111] |
小 | 中 | 中 | --- | --- | --- |
("[%5.3d]\n", 111) |
[ 111] |
大 | 中 | 中 | フィールド幅 - (精度、または整数の桁数) | --- | --- |
("[%3.1d]\n", 111) |
[111] |
中 | 小 | 中 | --- | --- | --- |
("[%3.5d]\n", 11111) |
[11111] |
中 | 大 | 中 | --- | --- | --- |
("[%3.3d]\n", 111) |
[111] |
中 | 中 | 中 | --- | --- | --- |
スペースを出力するケース
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
("[%5.1d]\n", 111) |
[ 111] |
大 | 小 | 中 | フィールド幅 - 整数の桁数 | --- | --- |
("[%5.3d]\n", 111) |
[ 111] |
大 | 中 | 中 | フィールド幅 - (精度、または整数の桁数) | --- | --- |
0を出力するケース
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
("[%1.5d]\n", 111) |
[00111] |
小 | 大 | 中 | --- | 精度 - 整数の桁数 | --- |
("[%3.5d]\n", 1) |
[00001] |
中 | 大 | 小 | --- | 精度 - 整数の桁数 | --- |
("[%3.3d]\n", 1) |
[001] |
中 | 中 | 小 | --- | 精度 - 整数の桁数 | --- |
スペースと0の両方を出力するケース
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
("[%5.3d]\n", 1) |
[ 001] |
大 | 中 | 小 | フィールド幅 -精度 | 精度 - 整数の桁数 | --- |
整数が負の場合
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
("[%1.3d]\n", -11111) |
[-11111 ] |
小 | 中 | 大 | --- | --- | --- |
("[%1.5d]\n", -111) |
[-00111] |
小 | 大 | 中 | --- | 精度 - 整数の桁数 | --- |
("[%3.1d]\n", -11111) |
[-11111] |
中 | 小 | 大 | --- | --- | --- |
("[%3.5d]\n", -1) |
[-00001] |
中 | 大 | 小 | --- | 精度 - 整数の桁数 | --- |
("[%5.1d]\n", -111) |
[ -111] |
大 | 小 | 中 | フィールド幅 - 整数の桁数 - 1 | --- | --- |
("[%5.3d]\n", -1) |
[ -001] |
大 | 中 | 小 | フィールド幅 -精度 - 1 | 精度 - 整数の桁数 | --- |
("[%3.3d]\n", -1) |
[-001] |
中 | 中 | 小 | --- | 精度 - 整数の桁数 | --- |
("[%3.3d]\n", -11111) |
[-11111] |
中 | 中 | 大 | --- | --- | --- |
("[%1.3d]\n", -111) |
[-111] |
小 | 中 | 中 | --- | --- | --- |
("[%5.3d]\n", -111) |
[ -111] |
大 | 中 | 中 | フィールド幅 - (精度、または整数の桁数)-1 | --- | --- |
("[%3.1d]\n", -111) |
[-111] |
中 | 小 | 中 | --- | --- | --- |
("[%3.5d]\n", -11111) |
[-11111] |
中 | 大 | 中 | --- | --- | --- |
("[%3.3d]\n", -111) |
[-111] |
中 | 中 | 中 | --- | --- | --- |
スペースを出力するケース
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
("[%5.1d]\n", -111) |
[ -111] |
大 | 小 | 中 | フィールド幅 - 整数の桁数 - 1 | --- | --- |
("[%5.3d]\n", -111) |
[ -111] |
大 | 中 | 中 | フィールド幅 - (精度、または整数の桁数)-1 | --- | --- |
0を出力するケース
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
("[%1.5d]\n", -111) |
[-00111] |
小 | 大 | 中 | --- | 精度 - 整数の桁数 | --- |
("[%3.5d]\n", -1) |
[-00001] |
中 | 大 | 小 | --- | 精度 - 整数の桁数 | --- |
("[%3.3d]\n", -1) |
[-001] |
中 | 中 | 小 | --- | 精度 - 整数の桁数 | --- |
スペースと0の両方を出力するケース
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
("[%5.3d]\n", -1) |
[ -001] |
大 | 中 | 小 | フィールド幅 -精度 - 1 | 精度 - 整数の桁数 | --- |
%dに0を渡す場合
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
"[%d]\n", 0 |
[0] |
--- | --- | --- | --- | --- | --- |
"[%0d]\n", 0 |
[0] |
ゼロ | --- | --- | --- | --- | --- |
"[%.d]\n", 0 |
[] |
--- | ゼロ | --- | --- | --- | 0を表示させない |
"[%.0d]\n", 0 |
[] |
--- | ゼロ | --- | --- | --- | 0を表示させない |
"[%0.0d]\n", 0 |
[] |
ゼロ | ゼロ | --- | --- | --- | 0を表示させない |
"[%5d]\n", 0 |
[ 0] |
大 | --- | --- | フィールド幅 - 精度 | --- | --- |
"[%.5d]\n", 0 |
[00000] |
--- | 大 | --- | --- | 精度 - 1 | --- |
"[%3.5d]\n", 0 |
[00000] |
中 | 大 | --- | --- | 精度 - 1 | --- |
"[%5.3d]\n", 0 |
[ 000] |
大 | 中 | --- | フィールド幅 - 精度 | 精度 - 1 | |
"[%5.0d]\n", 0 |
[ ] |
大 | ゼロ | --- | フィールド幅 - 1 | --- | スペースを表示 |
スペースを出力するケース
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
"[%5d]\n", 0 |
[ 0] |
大 | --- | --- | フィールド幅 - 精度 | --- | --- |
"[%5.0d]\n", 0 |
[ ] |
大 | ゼロ | --- | フィールド幅 - 1 | --- | スペースを表示 |
0を出力するケース
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
"[%.5d]\n", 0 |
[00000] |
--- | 大 | --- | --- | 精度 - 1 | |
"[%3.5d]\n", 0 |
[00000] |
中 | 大 | --- | --- | 精度 - 1 |
スペースと0の両方を出力するケース
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
"[%5.3d]\n", 0 |
[ 000] |
大 | 中 | --- | フィールド幅 - 精度 | 精度 - 1 |
%dに-0を渡す場合
上記の0を渡す場合と変化なし。
例 | 出力結果 | フィールド幅 | 精度 | 整数の桁数 | フィールド幅(スペース出力) | 精度(0出力) | 整数の変化 |
---|---|---|---|---|---|---|---|
"[%d]\n", 0 |
[0] |
--- | --- | --- | --- | --- | --- |
"[%0d]\n", 0 |
[0] |
ゼロ | --- | --- | --- | --- | --- |
"[%.d]\n", 0 |
[] |
--- | ゼロ | --- | --- | --- | 0を表示させない |
"[%.0d]\n", 0 |
[] |
--- | ゼロ | --- | --- | --- | 0を表示させない |
"[%0.0d]\n", -0 |
[] |
ゼロ | ゼロ | --- | --- | --- | 0を表示させない |
"[%5d]\n", 0 |
[ 0] |
大 | --- | --- | フィールド幅 - 精度 | --- | --- |
"[%.5d]\n", 0 |
[00000] |
--- | 大 | --- | --- | 精度 - 1 | |
"[%3.5d]\n", 0 |
[00000] |
中 | 大 | --- | --- | 精度 - 1 | |
"[%5.3d]\n", 0 |
[ 000] |
大 | 中 | --- | フィールド幅 - 精度 | 精度 - 1 | |
"[%5.0d]\n", -0 |
[ ] |
大 | ゼロ | --- | フィールド幅 - 1 | --- | スペースを表示 |
Discussion