
C言語 出力フォーマット指定子一覧
C言語出力フォーマット指定子一覧表指定子
C言語の出力フォーマット指定子について指定子の記述法、対応するデータ型、表示のされ方を表にしてまとめています。
出力フォーマット指定子一覧
このページではC言語の出力フォーマット指定子を指定子、対応する型、機能説明、使用例を表にしてまとめたベージです
printf(),fprintf(),sprintf()などで使用するフォーマット指定子である
指定子表
指定子 | 対応する型 | 説明 | 使用例 |
---|---|---|---|
%c |
char |
1文字を出力する | "%c" |
%s |
char* |
文字列を出力する | "%8s" ,"%-10s" |
%d |
int ,short |
整数を10進数で出力する | "%-2d" ,"%03d" |
%u |
unsigned int ,unsigned short |
符号なし整数を10進数で出力する | "%2u" ,"%02u" |
%o |
int ,short ,unsigned int ,unsigned short |
整数を8進数で出力する | "%06o" ,"%03o" |
%x |
int ,short ,unsigned int ,unsigned short |
整数を16進数で出力する | "%04x" |
%f |
float |
実数を出力する | "%5.2f" |
%e |
float |
実数を指数表示で出力する | "%5.2e" |
%g |
float |
実数を最適な形式で出力する | "%g" |
%ld |
long |
倍精度整数を10進数で出力する | "%-10ld" |
%lu |
unsigned long |
符号なし倍精度整数を10進数で出力する | "%10lu" |
%lo |
long ,unsigned long |
倍精度整数を8進数で出力する | "%12lo" |
%lx |
long ,unsigned long |
倍精度整数を16進数で出力する | "%08lx" |
%lf |
double |
倍精度実数を出力する | "%8.3lf" |
表示桁数の指定
表示桁数は {全体幅} . {小数点以下の幅} で指定する どちらか片方のしていでもいい、指定しなければデフォルトで表示される 小数点はデフォルトでは四捨五入される "."の部分も桁数の一つとして扱われる {小数点以下の幅} は、文字列の場合は最大文字数になる
例 | 出力結果 |
---|---|
printf("[%8.3f]",123.456789) |
[ 123.457] |
printf("[%15s]","abcdef") |
[ abcdef] |
printf("[%.4s]","abcdef") |
[abcd] |
printf("[%8.3e]",1234.56789) |
[1.234e+3] |
表示桁数の指定よりも実際の表示文字列が長くなることがあり、これはsprintf()の場合に特に注意が必要である 文字列の格納域と同じサイズにフォーマットを指定しても、配列オーバーを引き起こす可能性のあることを意味するからである
リーディングゼロの指定
数の場合には、桁数の指定の前に0
を付けるとゼロ詰めを指定することができる
例 | 出力結果 |
---|---|
printf("[%08.3f]", 123.456789) |
[0123.456] |
printf("[%04d]", 1) |
[0001] |
右詰め・左詰めの指定
左詰めしたい時に桁数指定の前に-
を指定する
デフォルトでは右詰めなので、右詰めをしたい場合は指定をしない
例 | 出力結果 |
---|---|
printf("[%-15s]","abcdef") |
[abcdef ] |
printf("[%-8.3f]", 123.456789) |
[123.456 ] |
printf("[%-4d]", 1) |
[1 ] |
符号の指定
デフォルトでは数の符号は出さないので+
の表記をさせたい場合は行数指定の前に+
を付ける
例 | 出力結果 |
---|---|
printf("[%+5d]",126) |
[ +126] |
printf("[%+5d]",126) |
[ -126] |
printf("[%+8.3f]",123.456789) |
[ +123.456] |