C言語でのファイル処理について

ファイルポインタの準備

FILE構造体を使用して、ファイルポインタ変数を用意する。

FILE *fp;

ファイルを開く

fpfopen( ... )関数でファイルを格納。
第一引数にはファイル名、第二引き数には、ファイルのアクセスモードを指定する。

  1. "r" : は読み取りモード。
  2. "w" : は書き込みモード。
  3. "a" : は追加モード。ファイルが存在しない場合、新たに作成する。

このコードでは、ファイルが存在しない(NULL)場合に、exit(EXIT_FAILURE)関数を使用する。

if((fp = fopen("data.txt","r")) == NULL){
	printf("Exception -> failed to open file");
	exit(EXIT_FAILURE);
}

ファイルの読み込み処理

以下のコードではondofscanf( ... )関数を用いてファイル内の数値を代入している。

fscanf( ... )は第一引数にファイルポインタを入れる。
第二引数には、書式指定子を入れる。 例 : "%d"など
第三引数には、代入先変数のアドレスを入れる。

ファイルの終わりはEOFで表されるが、fscanf( ... )でその値が取得されたときに、whileを終了している。

while((fscanf(fp,"%d",&ondo)) != EOF){
	chiten++;
	printf("地点%dの温度:%d\n",chiten,ondo);
	heikin += (float)ondo;
}

ファイルのクローズ

fclose()関数EOFを返した場合に、ファイルのクローズが失敗したと見なしてエラーメッセージを表示し、exit(EXIT_FAILURE)を使ってプログラムを終了する。

EOFは、C言語でファイル操作関数が失敗したことを示す特別な値。通常、fclose()関数は0を返すか、EOFを返す。正常にファイルを閉じた場合には0を返し、エラーが発生した場合にはEOFを返す。

if(fclose(fp) == EOF){
	printf("Exception -> failed to close file");
	exit(EXIT_FAILURE);
}