Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

【C言語】フォーマット指定子の一覧と使い方を徹底解説

C言語におけるフォーマット指定子(書式指定子)は、入出力処理において欠かせない要素です。printf()関数でデータを出力する際や、scanf()関数で入力を受け取る際に、変数がどの型のデータを扱っているのかをコンパイラに伝える役割を果たします。この記事では、主要なフォーマット指定子の一覧と、実際の使い方をサンプルコード付きでわかりやすく解説します。

フォーマット指定子の一覧

フォーマット指定子対応する型・用途
%c文字(char)
%d符号付き整数
%e または %E浮動小数点数の指数表記
%f浮動小数点数(float)
%g または %G%e / %E と同様(短い形式で自動選択)
%hi符号付き整数(short)
%hu符号なし整数(short)
%i符号なし整数
%l / %ld / %lilong 型
%lfdouble 型
%Lflong double 型
%lu符号なし int または unsigned long
%lli / %lldlong long 型
%lluunsigned long long 型
%o8進数表記
%pポインタ
%s文字列
%u符号なし整数(unsigned int)
%x または %X16進数表記
%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()では引数に変数のアドレスを渡す必要があるため、「&」を付けることを忘れないようにしましょう。

  1. SSDをフォーマットする方法|Windows 10・macOSの手順をわかりやすく解説

    知っておくべきポイント Windowsの場合:「ディスクの管理」を開き、対象のSSDを右クリックして「フォーマット」を選択します。 macOSの場合:「ディスクユーティリティ」を開き、SSDを選択して「消去」をクリックします。 ドライブがNTFS形式でフォーマットされている場合、Macでは読み取りは可能ですが、再フォーマットしない限り書き込みはできません。 この記事では、Windows 10およびmacOSでSSDをフォーマットする具体的な手順を、初心者にもわかりやすく解説します。 Windows 10でSSDをフォーマットする方法 Windows 10でSSDをフォーマットする方法は主

  2. 【C言語】数字パターンを出力するプログラムの作り方

    プログラムの概要 数値パターンとは、「パターンルール」と呼ばれる規則に基づいて生成された数列のことです。パターンルールでは、1つまたは複数の数学的操作を用いて、数列内の連続する数値同士の関係を表現します。 C言語では、for文による繰り返し処理を組み合わせることで、このような規則性のある数字パターンを簡単に出力できます。本記事では、代表的な2種類のパターン(三角形型とひし形型)を出力するプログラムを紹介します。 パターンの例 パターン1(三角形型) 1 2 6 3 7 10 4 8 11 13 5 9 12 14 15 パターン1では、各行の先頭の数字が行番号と一致し、隣の要素は直前の値に「