【C言語】printf()と書式指定でできること

【C言語】printf()と書式指定でできること

printf() の基本概要

`printf()` 関数は、C言語において標準出力(通常はコンソール)に文字列や数値を表示するための関数です。標準ライブラリ `` に含まれています。

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}

このプログラムを実行すると、以下のように表示されます。

Hello, World!

書式指定子の基本

`printf()` の書式指定子(フォーマット指定子)は、`%` で始まり、データの型や表示方法を指定します。

基本的な書式指定子

  • `%d` – 10進整数
  • `%f` – 浮動小数点数
  • `%c` – 文字
  • `%s` – 文字列
  • `%x` – 16進整数(小文字)
  • `%X` – 16進整数(大文字)

整数の書式指定

整数を表示するには、`%d` や `%i` を使います。

#include <stdio.h>

int main() {
    int num = 42;
    printf("整数: %d\n", num);
    return 0;
}

出力:

整数: 42

異なる進数での表示

C言語では、整数を10進数(`%d`)、8進数(`%o`)、16進数(`%x` または `%X`)で表示できます。

printf("10進数: %d\n", 42);
printf("8進数: %o\n", 42);
printf("16進数(小文字): %x\n", 42);
printf("16進数(大文字): %X\n", 42);

出力:

10進数: 42
8進数: 52
16進数(小文字): 2a
16進数(大文字): 2A

浮動小数点数の書式指定

浮動小数点数を表示するには、`%f` や `%e` を使用します。

#include <stdio.h>

int main() {
    double num = 3.14159;
    printf("小数点数: %f\n", num);
    printf("指数表記: %e\n", num);
    return 0;
}

出力:

小数点数: 3.141590
指数表記: 3.141590e+00

文字と文字列の書式指定

文字を表示するには `%c` を、文字列を表示するには `%s` を使用します。

#include <stdio.h>

int main() {
    char ch = 'A';
    char str[] = "Hello";
    printf("文字: %c\n", ch);
    printf("文字列: %s\n", str);
    return 0;
}

出力:

文字: A
文字列: Hello

フラグ・幅・精度の指定

表示の幅や精度を指定することができます。

printf("%10d\n", 123);  // 幅10
printf("%.2f\n", 3.14159);  // 小数点以下2桁

出力:

       123
3.14

エスケープシーケンス

`printf()` では、特定のエスケープシーケンスを使って特殊な文字を出力できます。

  • `\n` – 改行
  • `\t` – タブ
  • `\\` – バックスラッシュ
  • `\”` – ダブルクォート
printf("Hello\tWorld\n");

出力:

Hello   World

高度な使用例

`printf()` の応用例として、数値のゼロ埋めや左寄せの指定も可能です。

printf("%05d\n", 42);  // ゼロ埋め
printf("%-10d!\n", 42); // 左寄せ

出力:

00042
42        !

まとめ

`printf()` はC言語の基本的な出力関数であり、多様な書式指定が可能です。フォーマット指定子、幅・精度の調整、エスケープシーケンスを活用することで、柔軟な出力が実現できます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です