C言語のフォーマット指定子は、printf
やscanf
といった関数でデータを出力・入力する際に使用されます。フォーマット指定子は、出力や入力の形式を指定します。
1.主なフォーマット指定子
1.1.整数型
%d
または%i
: 10進数の整数%u
: 無符号10進数の整数%o
: 8進数の整数%x
: 16進数の整数(小文字)%X
: 16進数の整数(大文字)
int a = 10; unsigned int b = 20; printf("%d\n", a); // 10進数として出力 printf("%u\n", b); // 無符号10進数として出力 printf("%o\n", a); // 8進数として出力 printf("%x\n", a); // 16進数として出力(小文字) printf("%X\n", a); // 16進数として出力(大文字)
1.2.浮動小数点型
%f
: 浮動小数点数(小数部を含む)%e
または%E
: 指数表記の浮動小数点数%g
または%G
: 効率的な表記(%eまたは%fのいずれか短い方)
float pi = 3.14159; printf("%f\n", pi); // 通常の浮動小数点数として出力 printf("%e\n", pi); // 指数表記として出力 printf("%g\n", pi); // 効率的な表記として出力
1.3.文字型と文字列型
%c
: 1文字%s
: 文字列
char letter = 'A'; char str[] = "Hello, World!"; printf("%c\n", letter); // 1文字として出力 printf("%s\n", str); // 文字列として出力
1.4.ポインタ型
%p
: ポインタのアドレス
int num = 10; int *ptr = # printf("%p\n", ptr); // ポインタのアドレスとして出力
1.5. 特殊指定子
%%
: パーセント記号自体を出力
printf("100%% Complete\n"); // パーセント記号を出力
2.フォーマット指定子の修飾子
フォーマット指定子には、修飾子を追加して出力の幅や精度を指定することができます。
2.1.幅指定子:
最小フィールド幅を指定
int num = 123; printf("%5d\n", num); // 最小フィールド幅5で出力(右揃え)
2.2.精度指定子:
小数点以下の桁数を指定
float pi = 3.14159; printf("%.2f\n", pi); // 小数点以下2桁で出力
2.3.左揃え:
-
を使用して左揃え
int num = 123; printf("%-5d\n", num); // 最小フィールド幅5で出力(左揃え)
3.例:フォーマット指定子を使用したプログラム
以下は、さまざまなフォーマット指定子を使用したCプログラムの例です。
#include <stdio.h> int main() { int integer = 1234; float pi = 3.14159; char letter = 'A'; char str[] = "Hello, C"; // 整数型の出力 printf("Decimal: %d\n", integer); printf("Unsigned: %u\n", integer); printf("Octal: %o\n", integer); printf("Hex (lowercase): %x\n", integer); printf("Hex (uppercase): %X\n", integer); // 浮動小数点型の出力 printf("Float: %f\n", pi); printf("Scientific (lowercase): %e\n", pi); printf("Scientific (uppercase): %E\n", pi); printf("General: %g\n", pi); // 文字型と文字列型の出力 printf("Character: %c\n", letter); printf("String: %s\n", str); // ポインタの出力 printf("Pointer: %p\n", &integer); // フォーマット指定子の修飾子 printf("Width 10: %10d\n", integer); printf("Left align: %-10d\n", integer); printf("Precision 2: %.2f\n", pi); printf("Width 10, Precision 2: %10.2f\n", pi); return 0; }
このプログラムは、さまざまなデータ型の値をフォーマット指定子を使って出力する方法を示しています。フォーマット指定子を適切に使用することで、データを望む形式で表示することができます。