next up previous contents
Next: 25. プリプロセッサ Up: 24. ファイル入出力 Previous: 5. その他

2. 課題 24

cd c を実行した後で( ~/c に移動した後で )、以下の課題を やってみよ。

課題 24.1
ファイルの読み込み

既存のファイル(kadai23_1.c)を読み込み専用にオープンし、全てのテキストを 読み込んだ後に、標準出力に再びそれらを出力せよ。

ヒント
malloc()を用いて、読み込んだ行を記憶させなければ ならない。更に、それらの行の管理のためにリストを使う必要がある。

課題 24.2
ファイルへの書き出し I

課題24.1を改良し、読み込んだテキストを別のファイル(test.out)に 書き出すようにせよ。また、実行した結果、新しいファイル test.out が作成されることを確認せよ。

課題 24.3
ファイルへの書き出し II

課題24.2 の読み込みファイルを変更し、kadai24_2.c を読み込むように せよ。これを実行した結果、前の test.out の中身が新たに kadai23_2.cの中身に変わっていることを確認せよ。

課題 24.4
ファイルの読み書き

これまでの課題プログラムを利用して以下のプログラムを作成しなさい。 前のtest.outの中身を画面に出力 した後に、test.out のファイルの末尾に更に kadai24_3.c の 中身を追加するようなプログラムを作成せよ。

作成したプログラムをメイルで creport まで送りなさい。題は、kadai24 とする事。 但し、モジュール別に開発した場合には、それぞれのモジュールが 分かるようにして送りなさい。

前回の復習
ファイル入出力

ファイルの入出力は、ファイル型の構造体を元に行う。ファイル型構造体 へのポインタを用意しておかなければならない。

    FILE *fp;
実際の入出力に先立って、ファイルをオープンしなければならない。

    fp = fopen( "file_name", "mode" );
上の例で、file_name はパスを含めたファイル名で、mode はread, write, append の各モードに対して、"r", "w", "a" 等を指定する。更に、更新モードの場合にはそれぞれの指定 の後ろにr+ などのように + を付ける。

こうしてファイルをオープンした後は、fgets(), fputs(), fprintf() などの関数を利用して、読み書きが行える。

プログラムの終了時には、オープンしたファイルは自動的にクローズされる が、明示的に行うには、fclose(ファイル・ポインタ) を用いれば 良い。



Noriyo Kanayama