C言語例文集


 printf()    書式付きの文字列を標準出力(stdout)に出力する

ヘッダ stdio.h
書式 int printf(const char *fmt , ・・・);  → int printf(書式文字列, 可変引数);
引数 fmt … 出力するときの書式を含む文字列
・・・ … 出力する値のリスト
戻り値 成功:出力したバイト数
失敗:EOF
解説 書式付きの文字列を標準出力(stdout)に出力する

printf()は書式化された文字列を標準出力に書き出します。引数内の書式は次のような文字列で指定します。[ ]は省略可能。

% [@フラグ] [A出力幅] [B精度] [Cデータサイズ] Dデータの型

各部分の詳細は以下の通りです。

<@フラグ>

文字列及び数値の表示形式を指定します。

+ : 出力の前に符号(+または-)を付ける(省略時はマイナス符号のみ表示)
- : 左詰めに表示する(省略時は右詰め)
0 : 0を詰める
# : 数値の表示形式がわかるように表示する。
  (1) %#oのとき「0」を付加(8進数形式)
  (2) %#xのとき「0x」を付加(16進数形式)
  (3) %#Xのとき「0X」を付加(16進数形式)
[空白] : 出力値が符号付きで整数の場合、出力値の前に空白を付ける


<A出力幅>

文字列及び数値の出力幅を指定します。

<プログラム例>
#include<stdio.h>
int main()
{
  int num = 10;
  char str1[] = "str1";
  char str2[] = "str2";

  printf("一般表示:%d\n", num);
  printf("        :12345678901234567890\n");
  printf("右詰表示:%8s%8s\n", str1, str2);
  printf("左詰表示:%-8s%-8s\n", str1, str2);
  printf("0詰表示:%08d\n", num);
  printf("符号あり:%+d\n", num);
  printf(" 8進表示:%#o\n", num);
  printf("16進表示:%#x\n", num);
  printf("16進表示:%#4X\n", num);

  return 0;
}
<実行結果>


<B精度>

精度は以下のようにデータ型により指定が異なります。

文字列の場合 : 最大文字数の指定
整数の場合 : 最小桁数の指定
浮動小数のeやfの場合 : 小数点以下の表示桁数の指定
浮動小数のgまたはGの場合 : 最大有効桁数の指定

精度は最小幅フィールド指定のあとに小数点をつけて指定します。

<プログラム例>
#include<stdio.h>
int main()
{
  double x = 123.456;
  printf("12345678901234567890\n");
  printf("%f\n", x);
  printf("%12f\n", x);
  printf("%9.2f\n", x);

  printf("%6.3s\n" , "cgengo");
  printf("%6.3d\n" , 1);
  printf("%.3e\n" , 20.10);
  printf("%.3f\n" , 20.10);
  printf("%.3g\n" , 20.10);
  return 0;
}
<実行結果>



<Cデータサイズ>

入力数値データ引数のデフォルトサイズを指定します。指定方法はh, l , Lのいずれかで指定します。

h : short int指定
l または L : long int指定

<プログラム例>
#include<stdio.h>
int main()
{
  printf("%#lx\n" , 0x7fffffff);
  printf("%#hx\n" , 0x7fffffff);
  return 0;
}
<実行結果>



<Dデータの型>

データの型を指定します。

変換指定文字 意味 データ型
%c 1文字として出力する 文字型
%d , %i 10進数で出力する 整数型
%o 8進数で出力する 整数型
%x , %X 16進数で出力する 整数型
%f , %F [-]dddd.ddddddの形式で出力する 浮動小数点型
%e , %E 指数形式で出力する 浮動小数点型
%g , %G fまたはeの書式のうち、精度を
表現できる短い方の書式で出力する
浮動小数点型
%s 文字列として出力する 文字列
%% %を出力する 文字
%p ポインタの値を出力する ポインタ


<エスケープシーケンス>

 文字として出力できない特殊な文字をソースコード上で表現するときには、「\(円記号)」と特定の文字を組み合わせて表現します。
エスケープシーケンスはソースコード上は2文字以上の文字で構成されていますが、実行結果は1文字として扱われます。

エスケープシーケンス 意味
\a アラート
\b バックスペース(1文字分戻る)
\f フォームフィード(ページ送り)
\n 改行
\r キャリッジリターン(同じ行の先頭に戻る)
\t 水平タブ
\v 垂直タブ
\' シングルクォテーションを表示
\" ダブルクォテーションを表示
\\ \を表示(環境によってはバックスラッシュ表示)
\? ?を表示
\0 NULL文字
\ooo 8進数表記のASCII文字
\xhhh 16進数表記のASCII文字



<Topページ>

Copyright(c) 2010 , cgengor
このWebページの内容を無断で複製または転載することを禁じます。
このWebページの情報を利用することにより発生したいかなる損害について著作権保有者はいっさいの責任を負いません。