ファイルの種類は大きく、テキストファイルとバイナリファイルがある。
テキストファイルは、主に文字データを取り扱う。
バイナリファイルは、主に音声や画像データを取り扱う。
ファイル処理の基本は、ファイルポインタを宣言して、ファイルの読み書きの場所を決定してから処理を行う。
FILE *fp; //ポインタとして宣言する
ファイルを扱うときは次の順序で行う。
①ファイルを開く
②読み書きを行う
③ファイルを閉じる
ファイルを開く場合は次のように書く。
FILE *fp; fp = fopen("a.txt", "r");
三つめの引数はオープンモードで、C言語では次のようになります。
モード | 動作 | ファイルがあるとき | ファイルがないとき |
---|---|---|---|
"r" | 読み出し専用 | 正常 | エラー(NULL返却) |
"w" | 書き込み専用 | サイズを 0 にする(上書き) | 新規作成 |
"a" | 追加書き込み専用 | 最後に追加する | 新規作成 |
"r+" | 読み込みと書き込み | 正常 | エラー(NULL返却) |
"w+" | 書き込みと読み込み | サイズを 0 にする(上書き) | 新規作成 |
"a+" | 読み込みと追加書き込み | 最後に追加する | 新規作成 |
ファイルのオープンに成功すると、ファイルポインタを返す。
どのモードで開くかにより、前のファイルの扱いや、ファイルポインタが最初に示す位置は異なる。
オープンに失敗すると、fopen関数はNULLを返すので、NULLかどうかを判定して次の処理を決定すると良い。
ファイルを閉じるにはfclose()関数を使う。
fclose(fp);