今日の人気記事

  1. (前置・後置)インクリメント演算子, ++
  2. #include <stdio.h> と printf 関数 - プログラムの基本
  3. MinGW - gcc の環境設定(パスを通す) - Windows環境
  4. 変数名の付け方 - 命名規則
  5. 現在時刻の取得 - time関数

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

}

基本構文 の人気記事

  1. 変数の値を出力 - printf 関数
  2. 関数のプロトタイプ宣言
  3. printf関数の変換指定子
  4. break文 - ループから抜ける
  5. 条件演算子(3項演算子)「? :」
  6. int main(void) - プログラムの基本
  7. 配列の要素を出力(表示)する
  8. 浮動小数点数型(float型 double型)の最大値と最小値 - float.h
  9. while文 - 繰り返し処理
  10. continue文 - ループをスキップ

関連記事(一部広告含む)