fwrite.c
#include <stdio.h>
typedef struct data{
int num;
}md_t;
md_t arr[] = {
[0] = {
.num = 20,
},
[1] = {
.num = 40,
}
};
int main(int argc, char const *argv[])
{
FILE *fp ;
fp = fopen("./file.txt","w+");
if(NULL == fp)
{
perror("fopen");
return -1;
}
fwrite(arr,sizeof(md_t),sizeof(arr)/sizeof(md_t),fp);
return 0;
}
fread.c
#include <stdio.h>
typedef struct data{
int num;
}md_t;
md_t arr[2];
int main(int argc, char const *argv[])
{
FILE *fp ;
fp = fopen("./file.txt","r");
if(NULL == fp)
{
perror("fopen");
return -1;
}
fread(arr,sizeof(md_t),sizeof(arr)/sizeof(md_t),fp);
printf("arr[0]->num = %d,arr[1]->num = %d\n",\
arr[0].num,arr[1].num);
return 0;
}
测试结果
先运行写程序,再运行程序