C言語でファイル操作の勉強をしていると必ずといっていいほど出てくるFILE *fp
。
頑張った理解しようとしてるけど、いまいちFILE *fp
についてよくわかっていない人も多いのではないでしょうか。
そこで今回は、ファイル操作の時に必ずといっていいほど出てくるFILE *fp
について解説していきます。
FILE *fpとは
FILE *fpの意味と役割
C言語において、ファイル処理を行う際には、FILE型
のポインタ変数であるfp
を使用して紹介されていることが多い。
FILEはFILE型のことを指していて、fpは変数名です。FILE型はポイント変数として使用することが普通であり、ポイント変数として宣言する時に必要な*
が変数名の戦闘についています。
変数名は何でもいいので、FILE *file
でもいいですし、FILE *config_f
のようにしても問題ありません。
このポインタを使用することで、ファイルのオープン、クローズ、読み書きなどの操作を行うことができます。
- ファイルのオープン:
fopen()関数
を使用して、ファイルをオープンし、fp
にそのポインタを格納します。 - ファイルのクローズ:
fclose()関数
を使用して、ファイルをクローズします。
これにより、ファイルへのアクセスが終了します。
- ファイルへの読み書き:
fscanf()
やfprintf()
などの関数を使用して、ファイルからの読み込みやファイルへの書き込みを行います。
以下に、FILE *fp
の使用例を示します。
#include <stdio.h>
int main() {
FILE *fp; // ファイルポインタ変数の宣言
// ファイルのオープン
fp = fopen("sample.txt", "r");
if (fp == NULL) {
printf("ファイルをオープンできませんでした。\n");
return 1;
}
// ファイルからの読み込み
char buffer[256];
fscanf(fp, "%s", buffer);
printf("ファイルから読み込んだ文字列:%s\n", buffer);
// ファイルのクローズ
fclose(fp);
return 0;
}
上記の例では、fopen()関数
を使用してsample.txt
というファイルを読み込みモードでオープンし、そのポインタをfp
に格納しています。
その後、fscanf()関数
を使用してファイルから文字列を読み込み、printf()関数
を使用して読み込んだ文字列を表示しています。
最後に、fclose()関数
を使用してファイルをクローズしています。
入門書などで紹介されるサンプルコードではFILE *fp
のように、一目見ただけでは何のファイルを操作している変数なのか分かりませんが、実用する時はFILE *buf_file
FILE *f_output
のように分かりやすい変数名をつけるようにしてください。
正しく使用することで、ファイルの読み書きやクローズなどの操作を行うことができます。