C言語では、出力をフォーマットする際に「書式指定子」を使用します。これらはprintf()関数やsprintf()関数などで活用され、データ型に応じた出力を簡単に行うことができます。
本記事では、C言語の代表的な書式指定子を解説します。
さらに、実践的な例や補足情報も交えて、書式指定子の使い方を詳しく説明します。
是非最後まで読んでみて下さい!
\ C言語のおすすめ参考書はこちら /
書式指定子とは?
書式指定子は、フォーマット文字列内で使用され、値の型や形式を指定するための記号です。これにより、変数や定数を望みの形式で出力できます。
たとえば、整数や小数、文字列など、さまざまなデータ型を適切な形式で出力できるため、プログラムの可読性や実用性が向上します。
また、書式指定子を組み合わせることで、複数のデータを効率的に出力することも可能です。
基本的な書式指定子
出力指定子 | データ型 | 説明 |
---|---|---|
%d | 整数(int) | 10進数で整数を表示します。 |
%i | 整数(int) | %d と同じ動作をします。 |
%u | 符号なし整数 | 10進数で符号なし整数を表示します。 |
%f | 浮動小数点数 | 小数点以下の桁数を指定可能な実数値を表示します。 |
%e / %E | 浮動小数点数 | 指数表記で実数値を表示します。 |
%g / %G | 浮動小数点数 | %f と %e を切り替えた形式で表示します。 |
%c | 文字(char) | 単一の文字を表示します。 |
%s | 文字列(char配列) | 文字列を表示します。 |
%p | ポインタ | メモリアドレスを表示します。 |
%o | 符号なし整数 | 8進数で整数を表示します。 |
%x / %X | 符号なし整数 | 16進数で整数を表示します(大文字/小文字)。 |
これらの書式指定子は、基本的なデータ型を表示する際に非常に便利です。例えば、printf("%d", 10);
と記述することで、整数値 10 がそのまま出力されます。
特殊な指定子とフォーマット
基本的な指定子に加えて、特定の用途やデータ型に対応した特殊な指定子も用意されています。
出力指定子 | 説明 |
%% | % を文字として表示します。 |
%ld / %lld | 長整数(long, long long)を表示します。 |
%lf | 浮動小数点数(double)を表示します。 |
%zu | size_t 型を表示します。 |
%n | 出力された文字数を格納します(特殊用途)。 |
特殊な指定子は、特定の状況で便利に使用できます。例えば、%%
を使用することで、フォーマット文字列内に実際の %
記号を表示することが可能です。
また、%n
は出力文字数を追跡するのに役立つため、ログ出力やデバッグ時に使用されることがあります。
フォーマットオプション
出力をさらにカスタマイズするために、以下のようなオプションを指定子に付けることができます。
- 幅指定: 出力の幅を指定します。たとえば、
%-10d
のように記述すると、10文字幅で左揃えになります。右揃えにする場合は単に10d
と指定します。 - 精度指定: 小数点以下の桁数を指定します。
%6.2f
のように記述すると、小数点以下2桁で表示され、全体の幅が6文字になります。 - ゼロ埋め: 出力の幅をゼロで埋める場合は、
%04d
のように指定します。これにより、4桁になるまでゼロが前に追加されます。
さらに、複数のオプションを組み合わせることも可能です。たとえば、%-8.3f
のように指定すれば、8文字幅で左揃えにし、小数点以下3桁を表示します。
実用例
以下は、書式指定子を活用した実践的な例です。
#include <stdio.h>
int main() {
int number = 42;
float pi = 3.14159;
char character = 'A';
char string[] = "Hello, World!";
printf("整数: %d\n", number);
printf("浮動小数点数: %.2f\n", pi);
printf("文字: %c\n", character);
printf("文字列: %s\n", string);
return 0;
}
このプログラムを実行すると、それぞれのデータ型が適切にフォーマットされて出力されます。
まとめ
C言語の書式指定子を理解することで、柔軟で読みやすいプログラムを作成することが可能になります。本記事で紹介した指定子やオプションを参考に、実際のプログラムで試してみてください。
また、出力結果のフォーマットを調整することで、より見やすく、目的に合った出力が実現できます。
記事を読むだけではなく実際に動かしてみることで定着すると思うので試してみて下さい!
最後まで読んで頂きありがとうございました!
コメント