プログラムを書くための小道具(2)


画面になにか出力する

第1日目から使用した printf は、 プログラムからの出力を行うための手段の一つで、指示された内容を画面に表示することができる。 次のプログラムで printf の働きを確認してみよう。

/* printf-test.c */
#include <stdio.h>

main () {

        printf("Hello C world\n");

        printf("2gyome %d\n", 10);
        printf("%d 3gyome\n", 10 + 20);
        printf("4gyome %d ushiro\n", 1 + 2 * 3);

        printf("1banme=%d 2banme=%d\n", 10, 1 + 2 * 3);
}

実行してみると二重引用符(Double quotaion, ")の間の部分が表示されることと、 その中に出現する "%d" の部分は後ろに与えられた式の値に置き換えられている事が分かる。 さらに、"%" が複数ある場合、後ろに与えられた式が順に置き換えられていることも分かる。

[user99@proge1]~% ./printf-test                                                         ~/www/fpu/ProgrammingE/src
Hello C world
2gyome 10
30 3gyome
4gyome 7 ushiro
1banme=10 2banme=7
[user99@proge1]~%

printfは、書式(format)と表現したいものを指定すると、 書式にしたがって表示する働きを持っている。


変数の中身を表示させる

printf の機能を使うと、変数の中に入っている値を参照する事が簡単にできる。 たとえば、変数 iの中身を 「i = 」 の後ろに2桁で表示したい場合は 次のように書けば良い。

printf("i = %+02d\n", i);

この % から始まる文字列のことを書式指定とよぶ。 書式指定はman 3 printf として参照できるマニュアルに現れる言葉に従うと

%[フラグ文字][フィールド幅][. 精度][長さ修飾子]変換指定子

と書くことができる。

利用例

/* printf-test2.c */
#include <stdio.h>

main()
{
    int i;
    double t;

    i = 12;
    t = 314.15926535;

    printf("i = %d\n", i);

    i = 50;
    printf("i = %d\n", i);  /* 10進数 */

    printf("i = %1d\n", i); /* 最低長 1 の10進 */
    printf("i = %2d\n", i); /* 最低長 2 の10進 */
    printf("i = %5d\n", i); /* 最低長 5 の10進 */

    printf("i = %o\n", i);  /* 8進数 */
    printf("i = %x\n", i);  /* 16進数 */
    printf("i = %c\n", i);  /* 文字コード */

    printf("t = %f\n", t);    /* 固定小数点 */
    printf("t = %e\n", t);    /* 浮動小数点 */
    printf("t = %6.2f\n", t); /* 桁指定固定小数点 */

    printf("&t = %p\n", &t);  /* アドレスの表示 */
}

戻る
表紙


tacha@tack.fukui-med.ac.jp
$Id: printf.html,v 1.1 2007/10/25 15:46:02 tacha Exp tacha $