【C言語】フォーマット指定子の一覧と使い方を徹底解説
C言語におけるフォーマット指定子(書式指定子)は、入出力処理において欠かせない要素です。printf()関数でデータを出力する際や、scanf()関数で入力を受け取る際に、変数がどの型のデータを扱っているのかをコンパイラに伝える役割を果たします。この記事では、主要なフォーマット指定子の一覧と、実際の使い方をサンプルコード付きでわかりやすく解説します。
フォーマット指定子の一覧
| フォーマット指定子 | 対応する型・用途 |
|---|---|
| %c | 文字(char) |
| %d | 符号付き整数 |
| %e または %E | 浮動小数点数の指数表記 |
| %f | 浮動小数点数(float) |
| %g または %G | %e / %E と同様(短い形式で自動選択) |
| %hi | 符号付き整数(short) |
| %hu | 符号なし整数(short) |
| %i | 符号なし整数 |
| %l / %ld / %li | long 型 |
| %lf | double 型 |
| %Lf | long double 型 |
| %lu | 符号なし int または unsigned long |
| %lli / %lld | long long 型 |
| %llu | unsigned long long 型 |
| %o | 8進数表記 |
| %p | ポインタ |
| %s | 文字列 |
| %u | 符号なし整数(unsigned int) |
| %x または %X | 16進数表記 |
| %n | 何も出力しない(出力済み文字数を格納) |
| %% | % 記号そのものを出力 |
フォーマット指定子に追加できるオプション
基本的なフォーマット指定子には、以下のような要素を組み合わせることで、より柔軟な出力制御が可能になります。
マイナス記号(-):出力を左詰めにします。指定しない場合は右詰めになります。
% の後ろの数値:最小フィールド幅を指定します。文字列がその幅より短い場合、余白はスペースで埋められます。
ピリオド(.):フィールド幅と精度を区切ります。精度を指定すると、文字列の場合は表示する最大文字数を制限できます。
使用例
#include <stdio.h>
main() {
char ch = 'B';
printf("%c\n", ch); // 文字データを出力
// d と i を使って整数(10進数)を出力
int x = 45, y = 90;
printf("%d\n", x);
printf("%i\n", y);
float f = 12.67;
printf("%f\n", f); // float型の値を出力
printf("%e\n", f); // 指数表記で出力
int a = 67;
printf("%o\n", a); // 8進数形式で出力
printf("%x\n", a); // 16進数形式で出力
char str[] = "Hello World";
printf("%s\n", str);
printf("%20s\n", str); // 文字列を含めて20文字分の幅で右詰め表示
printf("%-20s\n", str); // 左詰めで表示
printf("%20.5s\n", str); // 20文字分の幅で右詰め、かつ先頭5文字のみ表示
printf("%-20.5s\n", str); // 左詰めで先頭5文字のみ表示
}
実行結果
B 45 90 12.670000 1.267000e+001 103 43 Hello World Hello World Hello World Hello Hello
scanf()関数での活用
これらのフォーマット指定子は、scanf()関数でもまったく同じように使用できます。つまり、上記の例で出力に使った書式と同じ指定子を使えば、キーボードからの入力を適切な型として受け取ることができます。ただし、scanf()では引数に変数のアドレスを渡す必要があるため、「&」を付けることを忘れないようにしましょう。
-
SSDをフォーマットする方法|Windows 10・macOSの手順をわかりやすく解説
知っておくべきポイント Windowsの場合:「ディスクの管理」を開き、対象のSSDを右クリックして「フォーマット」を選択します。 macOSの場合:「ディスクユーティリティ」を開き、SSDを選択して「消去」をクリックします。 ドライブがNTFS形式でフォーマットされている場合、Macでは読み取りは可能ですが、再フォーマットしない限り書き込みはできません。 この記事では、Windows 10およびmacOSでSSDをフォーマットする具体的な手順を、初心者にもわかりやすく解説します。 Windows 10でSSDをフォーマットする方法 Windows 10でSSDをフォーマットする方法は主
-
【C言語】数字パターンを出力するプログラムの作り方
プログラムの概要 数値パターンとは、「パターンルール」と呼ばれる規則に基づいて生成された数列のことです。パターンルールでは、1つまたは複数の数学的操作を用いて、数列内の連続する数値同士の関係を表現します。 C言語では、for文による繰り返し処理を組み合わせることで、このような規則性のある数字パターンを簡単に出力できます。本記事では、代表的な2種類のパターン(三角形型とひし形型)を出力するプログラムを紹介します。 パターンの例 パターン1(三角形型) 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 パターン1では、各行の先頭の数字が行番号と一致し、隣の要素は直前の値に「