C言語入門|printfによる画面表示の基本:書式文字列とプレースホルダを使いこなす

ここからはいよいよ、
「画面に結果を表示する」という、プログラミングの楽しさを実感できるテーマに入っていきます😊

これまで何気なく使ってきた printf ですが、
実はとても高機能で、きれいな表示を作るための工夫がたくさん詰まった命令なんです✨

「数値をそのまま出す」だけで終わらせるのは、ちょっともったいないですよ😉

printfとはどんな命令?🖥️

printf は、画面に文字や数値を表示するための命令です。
C言語では、表示処理といえばまずこの命令、というくらい定番の存在ですね😊

printf を使うときは、プログラムの先頭に次の記述が必要になります。

#include <stdio.h>

これは「printf を使う準備をしますよ」という宣言だと思ってください🙂

printfの基本的な書き方✨

まずは、もっとも基本的な形を見てみましょう。

printf(➀, ➁);

この2つの要素がポイントです👇

番号内容役割
書式文字列表示内容のひな形
変数や式実際に表示したい値

②には、変数だけでなく 計算式 を書くこともできます😊

書式文字列ってなに?🤔

書式文字列とは、
👉 「どんな形で表示するか」を決めるテンプレート
のようなものです。

たとえば、こんな書き方を見たことがありますよね👇

printf("年齢は %d 歳です\n", age);

この文字列の中にある %d が、とても重要な役割を持っています✨

プレースホルダの正体😊

書式文字列の中にある
% から始まる特別な記号を プレースホルダ と呼びます。

プレースホルダは、
👉 あとから値が流し込まれる場所
を表しています。

実行時には、次のような流れになります👇

1️⃣ 書式文字列を読み取る。
2️⃣ %d の位置を見つける。
3️⃣ 対応する変数の値をそこに入れる。

まさに「表示用の空きスペース」ですね🙂

データ型とプレースホルダの対応表📊

プレースホルダは、表示するデータ型に合わせて使い分ける必要があります。

種別データ型プレースホルダ
整数char(数値)%d
整数short%d
整数int%d
整数long%ld
小数float / double%f
文字char(文字)%c
文字列String%s

「全部覚えなきゃ…😰」と思うかもしれませんが、
最初は %d と %s だけでほぼ困りません😊

桁数をそろえて表示する✨

プレースホルダは、
表示の 桁数 を指定することもできます。

printf("%d", 123);      // 123
printf("%5d", 123);     //   123
printf("%05d", 123);    // 00123

このように指定すると、

  • 数字の位置をそろえたいとき
  • ゲームのHPやスコア表示

などで、とても見やすい表示が作れます🎮

複数の値をまとめて表示する😊

printf では、プレースホルダを複数使うこともできます。

printf(➀, ➁, ➂, ➃, ...);

書式文字列の中のプレースホルダの数と、
後ろに並べる変数や式の数は、必ず一致させます。

サンプルを少しアレンジして見てみましょう👇

プロジェクト名:3-10-1 ソースファイル名: sample3-10-1.c

#include <stdio.h>

typedef char String[1024];

int main(void)
{
    int level = 12;
    String player = "アオイ";
    printf("プレイヤー %s は レベル %d です。\n", player, level);
    return 0;
}

この場合、

  • %s に player
  • %d に level

が、それぞれ順番に流し込まれます🙂

プレースホルダがない場合は?🤔

もし書式文字列の中にプレースホルダが1つもなければ、
printf は 固定の文字列をそのまま表示します。

printf("こんにちは");

これは、いちばんシンプルな使い方ですね😊

printfは「表示の設計図」だと思おう✨

printf は、

  • 書式文字列で「表示の形」を決め
  • プレースホルダで「値の入り口」を作り
  • 引数で「実際の値」を流し込む

という仕組みで動いています🙂

最初は少しややこしく感じるかもしれませんが、
使えば使うほど「便利さ」が実感できる命令ですよ👍