Presentation is loading. Please wait.

Presentation is loading. Please wait.

プログラミング 2 ファイル処理.

Similar presentations


Presentation on theme: "プログラミング 2 ファイル処理."— Presentation transcript:

1 プログラミング 2 ファイル処理

2 ファイル入出力の 基本的な手順 ファイルを開く ファイルから読み込む/ファイルに書き込む ファイルを閉じる fopen() 関数
読み込み:fscanf() 関数など 書き込み:fprintf() 関数など ファイルを閉じる fclose() 関数

3 ファイルを開く(1) FILE * 型の変数を用意する これはポインタ(ポインタについてはプログラミング 3 で扱 う)
たとえば FILE *fp; FILE *fin, *fout; のように定義

4 ファイルを開く(2) fopen() 関数でファイルを開く fp = fopen(ファイル名, 開き方);
ファイル名は文字列で与える 「開き方」には次のようなものがある “r”:読み込み “w”:書き込み “a”:追記 ファイルが開けたら,以降 fp を介してファイルとや り取りする

5 ファイルを開く(3) ファイルを開けない場合 fopen() は記号定数 NULL を返す
読み込むファイルが見つからなかったとき 書き込むファイルが作れなかったとき fopen() の戻り値はチェックする fp = fopen(“data.txt”, “r”); if (fp == NULL) { /* ファイルが開けなかったときの処理 */ } 短いプログラムでは,ファイルを開く処理が失敗した場合, プログラムを終了させてしまうことが多い

6 ファイルの読み書き(1) fscanf() 関数(読み込み) fscanf(fp, …);
scanf() のファイル指定版;第 1 引数に fopen() 関数で得た FILE * の値を指定する fscanf(fp, “%d”, &a); fprintf() 関数(書き込み) fprintf(fp, …); printf() のファイル指定版;第 1 引数に fopen() 関数で得た FILE * の値を指定する fprintf(fp, “%d\n”, a);

7 ファイルの読み書き(2) その他のファイル読み書き関数 fgetc():1 文字読み込み(cf. getchar())
fgets():文字列 1 行読み込み(cf. gets()) fputc():1 文字書き込み(cf. putchar()) fputs():文字列 1 行書き込み(cf. puts())

8 ファイルを閉じる fclose() 関数 fclose(fp); ファイルに対応する FILE * を引数に与える
正常終了時に 0,異常終了時に EOF を返すが,検査しない ことが多い

9 ファイル入出力の手順まとめ FILE *fp; fp = fopen(…); If (fp == NULL) { /* 開けなかったときの処理 */ } /* ファイルの読み書き処理 */ fclose(fp);

10 ストリーム(1) プログラムから見た,入出力先へのデータの流れ:ス トリーム ストリーム ファイル プログラム 画面 キーボード ファイル
ストリームを表すのが FILE * ストリームをつなげるのが fopen() プログラムから見ると,ストリームの先はすべてファイルの ように見える(キーボード・画面・プリンタも!) ストリーム ファイル プログラム 画面 キーボード ファイル

11 ストリーム(2) 標準入力・標準出力という「プログラムが開始された ときからつながっているストリーム」がある 標準入出力用の入出力関数
標準入力:通常はキーボードにつながっている 標準出力:通常は画面につながっている 標準入出力用の入出力関数 scanf() は,入力元を標準入力にした特別な fscanf() printf() は,出力先を標準出力にした特別な fprintf() fscanf()・fprintf() では,標準入力を stdin,標準出力を stdout で指定することができる 標準入出力は,実行時などに指定してキーボード・画 面以外(ファイルなど)に接続することができる リダイレクトという


Download ppt "プログラミング 2 ファイル処理."

Similar presentations


Ads by Google