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;
}
このプログラムは、さまざまなデータ型の値をフォーマット指定子を使って出力する方法を示しています。フォーマット指定子を適切に使用することで、データを望む形式で表示することができます。
