按块进行读写

  • 写文件 fwrite
  • 参数1 数据地址 参数2 块大小 参数3 块个数 参数4 文件指针
  • 读文件 fread

代码示例:

//3.按块进行读写
struct Hero
{
   
        char name[64];
        int age;
};
void test03()
{
   
        //写文件
        FILE*f_write = fopen("./test3.txt", "wb");//二进制方式写入
        if (f_write == NULL)
        {
   
               return;
        }
        struct Hero heros[] =
        {
   
               {
   "孙悟空",999},
               {
   "猪八戒",998},
               {
   "唐山",997},
               {
   "傻生",996}
        };
        for (int i = 0; i < 4; i++)
        {
   
               //参数1 数据地址 参数2 块大小 参数3 块个数 参数4 文件指针
               fwrite(&heros[i],sizeof(struct Hero),1,f_write);
        }
        fclose(f_write);
        //读文件
        FILE*f_read = fopen("./test3.txt", "rb");
        if (f_read == NULL)
        {
   
               return;
        }
        struct Hero temp[4];
        fread(&temp,sizeof(struct Hero),4,f_read);
        for (int i = 0; i < 4; i++)
        {
   
               printf("姓名:%s 年龄:%d\n",temp[i].name,temp[i].age);
        }
        fclose(f_read);
}