続いてバイナリファイルの書き込み操作を見ていきます。
書き込み処理の例題
この例題では
asset/data.bin に10個の整数値を書き込んでいく
という事を行います。
大まかな手順は下記のとおりです。
- fopen_s 関数で指定したファイルを指定したモードで開き、変数fpで操作できるようにする
- fwrite 関数で指定した整数値を指定した個数分書き込む
-  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 で閉じるようにしてください。