C言語 #6: フォーマット指定子

独習C

C言語のフォーマット指定子は、printfscanfといった関数でデータを出力・入力する際に使用されます。フォーマット指定子は、出力や入力の形式を指定します。

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;
}

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

購読
通知
0 Comments
Inline Feedbacks
View all comments