1999年度のプログラミングIIIの授業は終りました。 この授業のページは参照用の資料として保存しているものです。最新の情報・資料は江上の授業ページで。
[EGAMIX トップ] > [授業のページ] > [1999年度 プログラミングIII] > [授業ノート・資料]

[Back] [Index]
 
ファイル入出力の学習

 
文字列をファイルに出力
 
→ "Hello" プログラム の改造
 
→ 複数文字列のファイル出力
  複数の fprintf を使用して、複数行のファイルを作成する
 

1つのファイルを開くのに1つのファイル変数が必要。(同時に)2つのファイルを開くのであれば、ファイル変数は2つ必要。


 
文字列をファイルから入力
 

"Hello"プログラムで書きこんだメッセージを読み込む
 
#include <stdio.h>

main ( )
{
        char buffer[100];
        scanf("%s", buffer);
        printf("%s\n", buffer);
}

 
#include <stdio.h>

main ( )
{
        char buffer[100];
        FILE *fp;
        fp = fopen("OUTPUT","r");
        fscanf(fp, "%s", buffer);
        printf("%s\n", buffer);
        fclose(fp);
}

 
複数ファイルのオープン
 
3つのファイルを同時に読んで、その内容を画面に出力させてみよう。
 
C言語から利用するファイルは以下の3つであるとする(既に準備してある)。
    /ckchome/public/prog3/data-1.dat
    /ckchome/public/prog3/data-2.dat
    /ckchome/public/prog3/data-3.dat
内容は cat コマンドを利用すれば参照する事ができる。

ファイル変数が3つ必要になるところに気がつけば比較的簡単にプログラムを作成できるはずだ。
 
たとえばこうなる・・・。
 
#include <stdio.h>
#include <stdlib.h>

main()
{
    FILE *fp1 , *fp2 , *fp3 ;
    char moji[100];

    fp1 = fopen("/ckchome/public/prog3/data-1.dat" , "r" );
    fp2 = fopen("/ckchome/public/prog3/data-2.dat" , "r" );
    fp3 = fopen("/ckchome/public/prog3/data-3.dat" , "r" );

    printf("\n[各ファイルから1行目を読み込みます]\n\n");

    fgets(moji, 100, fp1);
    printf("ファイル1から読んだ文字列 : %s", moji);
    fgets(moji, 100, fp2);
    printf("ファイル2から読んだ文字列 : %s", moji);
    fgets(moji, 100, fp3);
    printf("ファイル3から読んだ文字列 : %s", moji);

    printf("\n[各ファイルから2行目を読み込みます]\n\n");

    fgets(moji, 100, fp1);
    printf("%s", moji);
    fgets(moji, 100, fp2);
    printf("%s", moji);
    fgets(moji, 100, fp3);
    printf("%s", moji);

    fclose(fp1);
    fclose(fp2);
    fclose(fp3);
}


 
 
 

  
[Back] [Index]


egami@egamix.com