printf の変換文字列
書式指定文字列のなかで %d のように書くことで、その部分を変数の内容や計算式の結果で置き換えて表示させることができます。
printf("個数=%d, 平均=%f6.3\n",cnt, (double)cnt/(double)total );
実行結果例(cnt=3, total=20 のとき)
個数=3, 平均= 0.150
といった具合いです。この置き換えられる部分のことを変換文字列と呼んでいます。変換文字列は表示する型に応じて多くの種類があります。以下に代表的なものをしめします。
| 変換文字列 | 意味 | 使用例 | その結果 |
|---|---|---|---|
| %d | 整数を表示 | printf("[%d]\n",10); | [10] |
| printf("[%5d]\n",10); | [ 10] (5桁で表示して不足分は空白で埋める) | ||
| printf("[%05d]\n",10); | [00010] (5桁で表示して不足分は0で埋める) | ||
| %f | 実数を表示 | printf("[%f]\n",12.345); | [12.345000](小数部分の桁数は不定) |
| printf("[%9.5f]\n",12.345); | [ 12.34500](小数点含めて全体が9桁、小数以下が5桁、整数部分は空白を左詰め、小数部分は0を右詰め) | ||
| %c | 文字を表示 | printf("[%c]\n",'a'); | [a] |
| %s | 文字列を表示 | printf("[%s]\n","sample"); | [sample] |
| printf("[%10s]\n","sample"); | [ sample](10桁で表示して不足は右寄せ) | ||
| printf("[%-10s]\n","sample"); | [sample ](10桁で表示して不足は左寄せ) | ||
| %x | 整数を16進で表示 | printf("[%x]\n",1234); | [4d2] |