c言語でバイナリファイルから構造体を読み込む
はじめに
ファイルから構造体を読み込むプログラムを作成する。
目標
以下のようにstruct_read.cに構造体を定義。
/* struct_read.c */ #include <stdio.h> struct data{ char first_name[10]; int age; int height; };
以下のtanakaさんのデータtanaka.datを読み込み、ターミナルに出力することを目標とする。
/* tanaka.dat */ 74 61 72 6F 00 00 00 00 00 00 20 00 00 00 3B 00 00 00
Step1:ファイルを読み込む
以下のようにstruct_read.cを作成。
/* struct_read.c */ #include <stdio.h> struct data{ char first_name[10]; int age; int height; }; int main(void){ struct data tanaka; FILE *fp; fp = fopen("tanaka.dat", "rb"); //r:読み込み、b:バイナリモード fread(&tanaka, sizeof(tanaka), 1, fp); //1:読み込みデータ数 printf("%s\n", tanaka.first_name); printf("%d\n", tanaka.age); printf("%d\n", tanaka.height); fclose(fp); return 1; }
コンパイルして、実行した結果は
taro 32 59
となり、無事に読み込めた。