今日の人気記事

  1. サンプルプログラム集
  2. MinGW - gcc のインストール - Windows環境
  3. MinGW - gccのコンパイルと実行 - Windows環境
  4. LinuxでC言語 - コンパイラ(gcc)のインストール
  5. MacでC言語 - コンパイラ(gcc)のインストール - Xcode - Command Line Tools

printf関数の変換指定子

スポンサーリンク

変数の値を出力で、触れた printf 関数の変換指定子の詳細を紹介します。

printf 関数の変換指定子

まずは、変換指定子の書式を確認します。

%[フラグ][最小フィールド幅][.精度][修飾子]変換指定子

パーセント「%」からはじまり、さまざまな要素で修飾しながら、最後に変換指定子を指定します。

※ 角括弧[] で記述している部分は省略可能です。例えば[フラグ]など。

それでは変換指定子の書式をひとつずつみていきましょう。

フラグ

フラグは、変換指定子の表示オプションみたいものです。

フラグ
-フィールドの左寄せ
+正の数値であれば数値の前に「+」を付加
0フィールドの「0」埋め
スポンサーリンク

最小フィールド幅.精度

最小フィールドは、出力の桁数です。桁数(文字数)を揃えたいときに利用します。「フラグ」の「0」などを合わせて利用します。

修飾子

修飾子は変換指定子の精度を修飾し、以下のようなものがあります。

修飾子
h精度を半分にします。short や signed
l精度を倍にします。long や unsigned

[修飾子]変換指定子

[修飾子]変換指定子と変数の型の対応表です。

[修飾子]変換指定子変数の型概要
%cchar文字
%schar *文字列
%dint10進整数
%hdshort int半分の精度の10進整数
%ldlong int倍精度の10進整数
%uunsigned int符号なし10進整数
%huunsigned short int符号なし半分の精度の10進整数
%luunsigned long int符号なし倍精度の10進整数
%oint8進整数
%xint16進整数
%ffloat実数
%lfdouble倍精度の実数
%efloat実数の指数表示
%gfloat実数の最適表示

変換指定子の利用例

変換指定子の利用例をいくつか取り上げてみました。「 」は空白(半角スペース)を表します。

文字列
%sHello!
%8s  Hello!
%.2sHe
%8.2s      He

整数
%d1234
%6d  1234
%06d001234

実数
%f3.141593
%.3f3.14
%3.3f  3.14

利用例を実際に出力するプログラムです。

#include <stdio.h>

int main(void)
{

  /* 文字列 */
  printf("%s\n", "Hello!");
  printf("%8s\n", "Hello!");
  printf("%.2s\n", "Hello!");
  printf("%8.2s\n", "Hello!");

  /* 整数 */
  int a = 1234;
  printf("%d\n", a);
  printf("%6d\n", a);
  printf("%06d\n", a);

  /* 実数 */
  float b = 3.1415926535;
  printf("%f\n", b);
  printf("%.2f\n", b);
  printf("%3.2f\n", b);

}
スポンサーリンク