第十六章 getc,putc


getc と putc                                                                                                      
基本的な使い方は、“第四章 getchar ,putchar”とまったく同じです。             
getchar ,putchar と同じなので、日本語は扱えません。

a.txt というファイルが存在して、次のように “a” と書いてあるとします。
<a.txt>
a

このようなファイルが存在するとして、次のプログラムを見てください。

<getc,putc>
#include<stdio.h>
#include<stdlib.h>    /* exit を用いるときに必要 */

main()
{
    FILE *fp;
    int c;

/* a.txt ファイルを読み込みモードで開く */
    if((fp=fopen("a.txt","r"))==NULL)
    {
        printf("ファイルを開けません\n");
        exit(1);    /* ファイルが開けないときプログラムを終了させる */
    }
    c=getc(fp);   /* アドレスfpにあるファイルから一文字読み込む */
    fclose(fp);    /* ファイルを閉じる */

/* b.txt ファイルを書き込みモードで開く */
   if((fp=fopen("b.txt","w"))==NULL)
    {
        printf("ファイルを開けません\n");
        exit(1);    /* ファイルが開けないときプログラムを終了させる */
    }
    putc(c,fp);    /* アドレスfpにあるファイルへ一文字書き込む */
    fclose(fp);    /* ファイルを閉じる */
}
<実行結果>
<a.txt>
a
<b.txt>
a

実行すると、b.txt というファイルが作られ、中に a と書き込まれています。
もし、b.txt というファイルが実行前にあったならば、
前の内容が消され、a と書き込まれています。

getchar ,putchar と違うのは ( ) 内に fp があることだけです。

ここで、注意してほしいのですが、
ファイルを開くときは、ファイルが開けなかったときの処理を必ず書いてください。
こうすることで、おかしな処理をしてしまうことがなくなります。
if((fp=fopen("a.txt","r"))==NULL)
{
    exit(1);
}
ここで exit( ); は、stdlib.h 内に定義されており、
プログラムが正常な状態で終了させるときは exit(0);
異常な状態が起こった場合は、exit(1); など 0 以外の整数を用います。

<前に戻る  |目次|  次へ進む>