C言語でのバイナリーファイル操作入門:基本的なソース例と解説

C言語関連

C言語でバイナリーファイルを扱う場合、テキストファイルとは異なり、データをそのままの形式で読み書きします。この記事では、初心者でも理解しやすい基本的なバイナリーファイル操作の例を紹介します。

1. バイナリーファイルの書き込み

まずは整数の配列をバイナリーファイルに保存する例です。

#include <stdio.h>
int main() {
    FILE *fp = fopen("data.bin", "wb"); // 書き込みモードで開く
    if (!fp) { perror("ファイルオープン失敗"); return 1; }
    int numbers[5] = {10, 20, 30, 40, 50};
    fwrite(numbers, sizeof(int), 5, fp); // 配列全体を書き込む
    fclose(fp);
    return 0;
}

2. バイナリーファイルの読み込み

次に書き込んだファイルを読み込む例です。

#include <stdio.h>
int main() {
    FILE *fp = fopen("data.bin", "rb"); // 読み込みモードで開く
    if (!fp) { perror("ファイルオープン失敗"); return 1; }
    int numbers[5];
    fread(numbers, sizeof(int), 5, fp); // 配列に読み込む
    fclose(fp);
    for(int i = 0; i < 5; i++) {
        printf("%d\n", numbers[i]);
    }
    return 0;
}

3. ポイントと注意点

バイナリーファイル操作では、データ型のサイズやバイト順序(エンディアン)に注意が必要です。また、fwriteやfreadの戻り値で実際に書き込まれた/読まれた要素数を確認すると、安全性が向上します。

4. 応用例

文字列や構造体をバイナリーファイルに保存する場合も、同じ原理でfwrite/freadを使用します。構造体の場合は、メンバー間のパディングによるサイズの違いに注意してください。

まとめ

バイナリーファイルはデータをそのまま保存するため、効率よくデータの入出力が可能です。上記の例を参考にして、配列や構造体を安全に読み書きする方法を理解しましょう。

コメント

タイトルとURLをコピーしました