【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言語の基本的な出力関数であり、多様な書式指定が可能です。フォーマット指定子、幅・精度の調整、エスケープシーケンスを活用することで、柔軟な出力が実現できます。