
C言語のprintf関数:書式指定と使用例を徹底解説
C言語におけるprintf()
関数は、書式付きの出力を標準出力(通常はコンソール画面)に行うために使用されます。C言語で最も使用される出力関数であり、様々な方法で出力を整形することが可能です。この記事では、printf()
関数の構文、書式指定子、および具体的な使用例について詳しく解説します。
printfの基本構文
printf()
関数は<stdio.h>
ヘッダーファイル内で定義されています。
- 書式指定文字列: 出力するデータ形式を指定する文字列。変数の値やリテラルを表示するためのプレースホルダー(書式指定子)を含むことができます。
- 引数…: 書式指定子に対応する変数または値。
戻り値:
- 正常に実行された場合、出力された文字数を返します。
- エラーが発生した場合、負の値を返します。
簡単な例
出力:
こんにちは!
このプログラムでは、printf
関数を使ってテキスト "こんにちは!" をコンソールに出力しています。
printfの書式指定子
printf()
で使用する書式指定子は、パーセント記号(%)で始まり、変数の型や出力形式を指定します。
主な書式指定子一覧
- %d: 整数を表示します。
- %f: 浮動小数点数を表示します。
- %c: 文字を表示します。
- %s: 文字列を表示します。
- %%: '%'リテラルを表示します。
書式指定子はプレースホルダーとして機能するだけでなく、データの表示方法を細かく制御する追加の指示を含めることができます。
書式指定子の詳細な構造
%[フラグ][幅][.精度][長さ]指定子
1. 指定子
データの型を示す文字です。上記に主な指定子を示しました。
2. 幅
出力する最小文字数を指定します。指定された幅よりも文字数が少ない場合、空白文字で埋められます。文字数が指定された幅を超える場合でも、すべての文字が出力されます。
3. 精度
データ型によって意味が異なります。
- 整数型 (d, i, u, o, x, X): 出力する最小桁数を指定します。
幅
とは異なり、空白の代わりに先頭にゼロを追加します。桁数が精度よりも大きい場合、数値はそのまま出力されます。 - 浮動小数点型 (f, e, a, A): 小数点以下の桁数を指定します。
- 文字列 (s): 出力する文字列の長さを指定します。
4. 長さ
メモリ内のデータ型の長さを指定します。データ型修飾子と組み合わせて使用します。
- h: short int および unsigned short int で使用します。
- l: long int および unsigned long int で使用します。
- L: long double で使用します。
printfの具体的な使用例
以下に示す例は、さまざまな目的に対するCプログラムでのprintf()の使用法を示しています。
変数の値を表示
出力:
変数a=99 と 変数b=1 の合計(a+b)は 100 です
解説: %d
を使用して、整数変数 a, b、および a + b の結果を出力します。
リテラルを表示
出力:
99と1の合計 100
解説: %d
を使用して、整数リテラルである 99 + 1 の結果を出力します。
右寄せで出力
出力:
GeeksforGeeks
解説: %20s
は、文字列 s を、20文字の幅で右寄せで出力します。文字列が20文字未満の場合、左側に空白が追加されます。
左寄せで出力
出力:
GeeksforGeeks Geeks
解説: %-20s
は、文字列 s を、20文字の幅で左寄せで出力します。文字列が20文字未満の場合、右側に空白が追加されます。
整数に先頭のゼロを追加
出力:
0000002451
解説: %.10d
は、整数 n を10桁で出力します。n が10桁未満の場合、先頭にゼロが追加されます。
浮動小数点数の小数点以下の桁数を制限
出力:
2.45
解説: %.2f
は、浮動小数点数 f を小数点以下2桁で出力します。必要に応じて値を四捨五入します。
文字列の文字数を制限
出力:
Welcome
解説: %.7s
は、文字列 s の最初の7文字のみを出力します。
まとめ
printf()
関数は、C言語で柔軟な出力を実現するための強力なツールです。書式指定子を理解し、適切に使用することで、データの表現を細かく制御し、読みやすい出力を生成できます。C言語プログラミングにおけるprintf()
の理解を深め、より効果的なプログラムを作成しましょう。