C言語のprintf関数の使い方。書式指定子(%d, %f, %s ...)を表とインタラクティブなテスターで解説。
printf("...%d...\n", x); で値を表示%d=int, %f=double, %c=char, %s=文字列%f はデフォルトで小数6桁 → %.2f で小数2桁など桁数を制御%8.2f, %-8.2f, %08.2f)%e(指数) や %g(自動)%x(16進), %o(8進)、左寄せ %-10sprintfは文字列(文字の並び)を表示する処理です。\n は改行を意味する特殊文字です。
printf("Hello World!\n"); // 文字列を表示 printf("5 x 6 = %d\n", 30); // 数値を埋め込んで表示 printf("result = %d\n", hensu); // 変数の値を表示
int a = 5;printf("%d", a); → 5%2d → " 5"、%4d → " 5"double b = 5.23;printf("%f", b); → 5.230000%5.2f → " 1.52" (全5桁、小数2桁)% を並べて、カンマの後ろに表示したい変数を順番通りに並べるだけ。1つ目の % に1つ目の変数、2つ目の % に2つ目の変数…と対応します。%d ← age、2つ目の %.1f ← h。書いた順に埋まる。printf("%d + %d = %d\n", a, b, a+b); → 3 + 5 = 8%f はデフォルトで小数点以下6桁まで出ます。3.14 を出すだけで 3.140000 になって見づらい ― そんなときは 精度指定で桁数を変えられます。%.Nf ― 小数点以下 N 桁| 書式 | 意味 | b = 3.14159 の出力 |
|---|---|---|
%f | デフォルト (小数6桁) | 3.141590 |
%.0f | 整数部分のみ(四捨五入) | 3 |
%.1f | 小数1桁(四捨五入) | 3.1 |
%.2f | 小数2桁(よく使う・通貨やパーセント) | 3.14 |
%.4f | 小数4桁(物理・科学計算向け) | 3.1416 |
%8.2f | 全8桁幅で右揃え、小数2桁 | " 3.14" |
%-8.2f | 全8桁幅で左揃え、小数2桁 | "3.14 " |
%08.2f | 全8桁幅、0埋め、小数2桁 | "00003.14" |
%W.Nf の W = 全体の幅(小数点も含む)、N = 小数点以下の桁数。どちらか片方だけの指定もOK(%.3f、%10f)double x = 3.145;printf("%.2f", x); → 3.15(切り上げ)double y = 3.144;printf("%.2f", y); → 3.14(切り捨て)double v = 0.00000123;printf("%.2f", v); → 0.00(情報が消える!)printf("%.2e", v); → 1.23e-06(指数表記)printf("%g", v); → 1.23e-06(自動で見やすい方)%e か %g を使うと情報が失われにくい。
%.2f(2桁で十分)%.1f%.4f 〜 %.6f%8.2f(全幅+小数指定)%.15f or %gprintf に %d %d %d を並べて3つの変数を同時表示%5d, %.3f, %-10s など幅・精度・左寄せを指定\n とタブ \t で表を整形%c で文字、%x で16進、%o で8進表示この講座の理解度をチェックしましょう!
%d は整数を表示するフォーマット指定子です。10 がそのまま表示されます。
scanf では変数のアドレスを渡す必要があるため、&(アドレス演算子)を付けます。
%.2f は小数点以下2桁まで表示するフォーマット指定子です。3.14159 は 3.14 と表示されます。