Presentation is loading. Please wait.

Presentation is loading. Please wait.

第4回 ファイル入出力方法.

Similar presentations


Presentation on theme: "第4回 ファイル入出力方法."— Presentation transcript:

1 第4回 ファイル入出力方法

2 データ処理にはファイル処理が必要 この部分

3 ファイル入出力方法 ファイル入出力を行うためには、ファイルオープンをしなければならない。
また、使用し終わったファイルはクローズしなけれなならない。 ファイルをオープンすると、OSからファイルを使用するための情報が返ってくる。この情報のことをファイルポインタと呼ぶ。 ファイルポインタには、バッファの位置、バッファ内の現在位置、ファイルの読み書きのいずれか、ファイルの種類といった、ファイルに関する情報を含む構造体へのポインタである。

4 fopen()関数 fopen()関数は、ファイルとオープンし、ファイルポインタを返す関数である。 書式は以下のとおり。
kojima.datというファイルがテキストファイルで、読み取り専用でオープンしたい場合 FILE *fp; fp = fopen(”name”, mode); FILE *fp; fp = fopen(”kojima.dat”, ”rt”);

5 ファイルオープンモード 使用するモード モード 補足説明 読み込み専用 r ファイルが存在しなければならない 書き込み専用 w
ファイルが存在するとそのファイルは消去されて新しく作成される 読み書き両用 r+ ランダムファイルとして任意のレコードに対して読み書きができる w+ ただし、任意のレコードを指定するには、fseek()関数を使用しな ければならない 書き込み(追加) a ファイルが存在すれば後ろに追加。なければ新規に作成される a+ その他 t テキスト(アスキー)ファイルの指定 b バイナリファイルの指定 ただし、バイナリファイルは、OSによってデータサイズが異なる ことがあるので、移植を考えた場合には推奨できない

6 ファイルが存在しない時のエラー処理 ファイルを読み取り専用でオープンする場合、ファイルが存在しないといけない。
存在しない場合のエラー処理の方法(雛型)は以下のとおり(この場合、finがファイルポインタ)

7 fclose()関数 ファイルは、プログラムが終了する前に必ずfclose()関数を使用して、クローズされなければならない。
書式は下記のとおり なお、ファイルポインタ名は、ファイルをオープンしたときに返ってきたファイルポインタを示すものを使用する。 fclose(ファイルポインタ名);

8 fprintf()関数:ファイルへの出力
オープンしたファイルへ出力する関数 書式は以下のとおり 例:ファイルポインタ名が、fpであり、int型のデータ(変数名をa, bとする)を2つ、ファイルに出力する場合 fprintf( ファイルポインタ名, 書式指定文字列, 引数1, 引数2     ); fprintf( fp, ”%d %d \n”, a, b);

9 fscanf()関数:ファイルから入力 ファイルからの入力は、fscanf()関数を使用する。 書式は、scanf()関数とほとんど同じ
例:ファイルポインタ名が、fpであり、int型のデータ(変数名をa, bとする)を2つ、ファイルから入力する場合 fscanf( ファイルポインタ名, 書式指定文字列, &引数1, &引数2   ); fscanf( fp, ”%d %d”, &a, &b);

10 例題:copyコマンド類似プログラム

11 演習課題6:100個のデータの平均、分散 以下の仕様(1)(2)(3)を満足するプログラムを作成せよ
(1)課題4で作成した乱数発生プログラムを参考に、0から100の間の数をランダムに100個作成し、ファイルにセーブする。 (2)セーブしたデータを読み込み、平均、分散を計算し、その結果を画面に表示するとともに、ファイル出力する。 (3)ファイルへの出力フォーマットは、下記のとおり。 平均 = 平均の計算結果 分散 = 分散の計算結果 ファイル名は、Kadai6_uyyyy(学修番号相当) 補足説明は次のページを参照

12 (平均および)分散 n個のデータの平均(m)、分散(v)は、下記の式で計算することができる。 ここで、I番目のデータがdi


Download ppt "第4回 ファイル入出力方法."

Similar presentations


Ads by Google