C言語のprintf文は出力フォーマットを柔軟に指定することができるので、使いこなせると便利です。
知っておくと便利な例を下に記述します。
特にsprintf関数はchar型配列に出力結果の文字列を渡すことができ何かと便利です。
#include <stdio.h> void main(){ int i1 = 123; int i2 = -1234567890; double d1 = 123.456789; double d2 = -1234567890.1234; char s[256] = "abcdefg"; printf("固定テキスト表示\n"); printf("特殊記号を表示 [%%] [\\] [\"] [\'] [\$] \n"); printf("整数値を表示 [%d], [%d] \n", i1, i2); printf("浮動小数点数を表示 [%f], [%f] \n", d1, d2); printf("文字列(char配列)を表示 [%s] \n", s); printf("\n"); printf("ケタ数を指定して整数を表示 [%6d] [%06d] \n", i1, i1); printf(" 指定ケタ数より多い場合 [%6d] [%+06d] \n", i2, i2); printf("符号を付与して整数を表示 [%+d] [%+6d] [%+06d] \n", i1, i1, -i1); printf("\n"); // %10.3f の意味は 「小数点以下は3桁を表示し、全体で10桁(つまり、整数部6桁 + "."1桁 + 小数部3桁 = 計10桁)」 printf("ケタ数を指定して浮動小数点数を表示 [%10.3f] [%010.3f] \n", d1, d1); printf(" 指定ケタ数より多い場合 [%10.3f] [%010.3f] \n", d2, d2); printf("符号を付与して浮動小数点数を表示 [%+10.3f] [%+010.3f] \n", d1, -d1); printf("指数形式で浮動小数点数を表示 [%+e] [%.3e] [%.10e] \n", d1, d1, d1); printf("\n"); char buf[256]; sprintf(buf, "sprintfによりchar配列に出力結果を渡せる [%08d] ", i1); printf("sprintf出力 \"%s\" \n", buf); return; }
実行結果
固定テキスト表示 特殊記号を表示 [%] [\] ["] ['] [$] 整数値を表示 [123], [-1234567890] 浮動小数点数を表示 [123.456789], [-1234567890.123400] 文字列(char配列)を表示 [abcdefg] ケタ数を指定して整数を表示 [ 123] [000123] 指定ケタ数より多い場合 [-1234567890] [-1234567890] 符号を付与して整数を表示 [+123] [ +123] [-00123] ケタ数を指定して浮動小数点数を表示 [ 123.457] [000123.457] 指定ケタ数より多い場合 [-1234567890.123] [-1234567890.123] 符号を付与して浮動小数点数を表示 [ +123.457] [-00123.457] 指数形式で浮動小数点数を表示 [+1.234568e+002] [1.235e+002] [1.2345678900e+002] sprintf出力 "sprintfによりchar配列に出力結果を渡せる [00000123] "