ファイル操作

続いてバイナリファイルの書き込み操作を見ていきます。

書き込み処理の例題

この例題では
asset/data.bin に10個の整数値を書き込んでいく
という事を行います。

大まかな手順は下記のとおりです。

  1.  fopen_s 関数で指定したファイルを指定したモードで開き、変数fpで操作できるようにする
  2.  fwrite 関数で指定した整数値を指定した個数分書き込む
  3.  fclose 関数でファイルを閉じる
#include 

// エントリー関数
int main(void)
{
    // ファイル構造体を扱うポインタ変数宣言
    FILE* fp = NULL;

    // バイナリデータを書き込む為、 モードに「b」を付け加える
    if (0 == fopen_s(&fp, "asset/data.bin", "wb"))
    {
        // int 型の整数値を10個書き込む
        int data[10] = { 1,2,3,4,5,6,7,8,9,10 };
        fwrite(data, sizeof(int), 10, fp);

        fclose(fp);
    }
    else
    {
        printf("ファイルを開けませんでした");
    }


    return 0;
}

順にみていきましょう。

 

①fopen_s 関数で指定したファイルを指定したモードで開き、変数fpで操作できるようにする

下記コードがその個所となります。

    // ファイル構造体を扱うポインタ変数宣言
    FILE* fp = NULL;

    // バイナリデータを書き込む為、 モードに「b」を付け加える
    if (0 == fopen_s(&fp, "asset/data.bin", "wb"))

バイナリデータを書き込む為、モードが「wb」になっている事に注目してください。

 

②fwrite 関数で指定した整数値を指定した個数分書き込む

下記コードがその個所となります。

        // int 型の整数値を10個書き込む
        int data[10] = { 1,2,3,4,5,6,7,8,9,10 };
        fwrite(data, sizeof(int), 10, fp);

fwrite 関数は書き込みたいデータの単体のデータサイズと個数を指定してファイルに書き込みます。
書き込みの開始位置は、変数fpで制御されており、
書き込みが行われると、書き込んだ分だけ開始位置を進めてくれます。
戻り値は書き込んだデータの個数になっています。

③ fclose 関数でファイルを閉じる

下記コードがその個所となります。

        fclose(fp);

ファイルは使い終わると必ず fclose で閉じるようにしてください。

1 2 3 4 5

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です