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を使用します。構造体の場合は、メンバー間のパディングによるサイズの違いに注意してください。
まとめ
バイナリーファイルはデータをそのまま保存するため、効率よくデータの入出力が可能です。上記の例を参考にして、配列や構造体を安全に読み書きする方法を理解しましょう。


コメント