C语言用标准io实现结构体的读写
代码如下,在linux下编译运行成功:
/********************************************
*功能:用文件io实现结构体的读写(二进制读写)
*作者:lml 时间:2020年4月13日22:20
********************************************/
#include <stdio.h>
#include <errno.h>
#include <string.h>
typedef struct{
char a;
int b;
char stbuf[10];
}str;
int main(int argc, const char *argv[])
{
FILE *fd1;
FILE *fd2;
fd1 = fopen("9.txt","w+");
str test;//定义发送结构体
str back;//定义接受结构体
test.a = 'm'; //初始化
test.b = 100; //初始化
strcpy(test.stbuf,"123 hello!"); //初始化
fwrite(&test,sizeof(test),1,fd1);//写入文件中
fseek(fd1,0,SEEK_SET); //文件指针移动到头部,以便于读
fread(&back,sizeof(back),1,fd1);//读到程序中来
//打印看是否成功
printf("a:%c\n",back.a);
printf("b:%d\n",back.b);
printf("stbuf:%s\n",back.stbuf);
fclose(fd1);
return 0;
}
结束!快去试试吧。