#include <stdio.h> #include <stdlib.h> #include <string.h> /* 高级保存选项 - 编码 - unicode(utf-8 带签名)-65001 这样设置事后, 在命令行输出的中文不会乱码. */ struct Hero { char name[64]; int age; }; void write_block(FILE* fd, struct Hero (*p)[4],int size, int len) { for (int i=0;i < len;i++ ) { fwrite(&(*p)[i], size, 1, fd); } } void read_block(FILE* fd, struct Hero(*buf)[4],int size ,int len ) { fread(&(*buf), size, len, fd); } void test() { struct Hero node[4] = { {"张三",11}, {"李四",12}, {"王五",13}, {"马六", 14} }; FILE* f_write = fopen("./hero.txt", "wb"); write_block(f_write, &node,sizeof(struct Hero),4); fclose(f_write); struct Hero hers[4]; FILE* f_read = fopen("./hero.txt", "rb"); read_block(f_read, &hers, sizeof(struct Hero), 4); fclose(f_read); for (int i=0;i < 4;i++) { printf("name:%s,age:%d\n", hers[i].name, hers[i].age); } } int main() { test(); return 0; }