3 書式付き出力printf(p.320)

3.1 ディスプレイへの出力

printf()関数を使えば,簡単にディスプレイ(標準出力)に表示できる.括弧内の最 初のクォーテーションで囲まれた部分が出力される.Hello worldのプログラムでお なじみであろう.変数に格納されたデータ--整数や実数,文字,文字列--を表示させた ければ,変換仕様(p.320〜)を使う.教科書には,いろいろ書かれており,諸君にはわか りにくいだろう.実際には,
printf("%d+%d=%d\n", a, b, result);
 

にように書く.この文の動作は,図1のとおりである.
図 1: ディスプレイに表示させるprintf関数の意味
\includegraphics[keepaspectratio,scale=1.0]{figure/printf_var.eps}

ここで難しいのは,変換仕様の使い方である.本講義で使う変換仕様はそんなに多くなく, 表1にまとめることができる.この中でも,文字列は滅多に使わ ないだろう.

あと,重要なことはエスケープシーケンス(p.27)である.エスケープシーケンスもいろい ろあるが,'\n'と'\t'の使い方が分かれば,本 講義では十分である.


表 1: 型に依存する変数定義や入出力
表示方法 変換仕様 備考
整数   %d 10進数に変換
実数 浮動小数点 %f 小数点の表示.非常に大きな数値や小さ い数値の表示には向かない.
    %20.15f 合計20カラムで,小数点以下15桁で表示
  指数表示 %e 非常に大きな数値や小さい数値を含む場合に都合が良い.
文字   %c ひとつの文字を表示する場合に使う.
文字列   %s 文字列を表示させる場合に使う.

3.2 練習問題

書式付き出力(printf)を使うと,任意の形でデータを出力できる.教科書のP.320〜 325を読み,以下の練習問題を実施せよ.
[練習1]
円周率を,いろいろなフォーマットで出力せよ.ただし,円 周率はmath.hの中でM_PIで定義されている.それ は,リスト1のようにすれば表示できる.
  • 通常の%fで表示せよ.
  • 小数点以下,3桁で表示せよ.
  • 小数点以下,10桁で表示せよ.
  • 指数形式で表示せよ.
リスト1には,数学関数用のヘッダーファイル math.hが使われているので,コンパイルには-lmオ プションが必要である.例えば
gcc -lm -o fuga hoge.c

とする.
[練習2]
整数の22446688を8進数で表示せよ.また,16進数で表 示せよ.
[練習3]
円周率と円周率の2乗の両方を小数点以下,10桁で表示せよ.た だし,2つの数値の間はタブ区切りとする.

   1 #include <stdio.h>
   2 #include <math.h>
   3 
   4 int main(void){
   5 
   6   printf("%f\n", M_PI);
   7   
   8   return 0;
   9 }

ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成18年6月6日


no counter