「C言語」の版間の差分
提供: Wikinote
(→printf のフォーマット) |
|||
| 行14: | 行14: | ||
f = 123.456; | f = 123.456; | ||
printf("%f %f\n", f, -f); // デフォルト | printf("%f %f\n", f, -f); // デフォルト | ||
| − | printf("%.2f %.2f\n", f, -f); // | + | printf("%.2f %.2f\n", f, -f); // 小数点以下桁 (精度) 指定 |
printf("%10f %10f\n", f, -f); // 最小幅指定 | printf("%10f %10f\n", f, -f); // 最小幅指定 | ||
printf("%10.2f %10.2f\n", f, -f); | printf("%10.2f %10.2f\n", f, -f); | ||
| 行22: | 行22: | ||
printf("%*.2f %*.2f\n", 15, f, 15, -f); // 引数による幅指定 | printf("%*.2f %*.2f\n", 15, f, 15, -f); // 引数による幅指定 | ||
printf("%*3$.2f %*3$.2f\n", f, -f, 20); // 引数による幅指定 (引数指定) | printf("%*3$.2f %*3$.2f\n", f, -f, 20); // 引数による幅指定 (引数指定) | ||
| + | printf("%10.*3$f %.*3$f\n", f, -f, 10); // 引数による精度指定 (引数指定) | ||
return 0; | return 0; | ||
| 行38: | 行39: | ||
123.46 -123.46 | 123.46 -123.46 | ||
123.46 -123.46 | 123.46 -123.46 | ||
| + | 123.4560012817 -123.4560012817 | ||
2009年2月3日 (火) 09:48時点における版
C 言語再考。
覚え書き
printf のフォーマット
% で始まり、変換指定子で終わる。以下のプログラムで実験。
#include <stdio.h>
int main(void) {
float f;
printf("1234567890 1234567890\n");
printf("---------------------\n");
f = 123.456;
printf("%f %f\n", f, -f); // デフォルト
printf("%.2f %.2f\n", f, -f); // 小数点以下桁 (精度) 指定
printf("%10f %10f\n", f, -f); // 最小幅指定
printf("%10.2f %10.2f\n", f, -f);
printf("%010.2f %010.2f\n", f, -f); // 0 で埋める
printf("%-10.2f %-10.2f\n", f, -f); // 左揃え
printf("%+10.2f %+10.2f\n", f, -f); // 必ず符号をつける
printf("%*.2f %*.2f\n", 15, f, 15, -f); // 引数による幅指定
printf("%*3$.2f %*3$.2f\n", f, -f, 20); // 引数による幅指定 (引数指定)
printf("%10.*3$f %.*3$f\n", f, -f, 10); // 引数による精度指定 (引数指定)
return 0;
}
実行結果は下記のようになる。
$ gcc -o printf printf.c; ./printf
1234567890 1234567890
---------------------
123.456001 -123.456001
123.46 -123.46
123.456001 -123.456001
123.46 -123.46
0000123.46 -000123.46
123.46 -123.46
+123.46 -123.46
123.46 -123.46
123.46 -123.46
123.4560012817 -123.4560012817