如何将一个结构体保存到文件中呢?

acqy 2003-05-28 12:37:41
比如说:有如下结构体:
typedef struct tagFileMapper {
int fmSize;
char filename [255];
DWORD filesize;
} FileMapper, *PFileMapper;

现在定义一个对象:
FileMapper myMapper;
同时设置号各个成员的值。那么如何把这个结构体写到一个文件中呢?我是说不把结构体的成员单独写入文件,而是作为整体写入。
...全文
2131 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rtdb 2003-05-28
  • 打赏
  • 举报
回复
FILE* hFile = fopen("data","wb") ;
fwrite(&myMapper, sizeof(myMapper),1, hFile);
fclose(hFile) ;
arfi 2003-05-28
  • 打赏
  • 举报
回复
可以使用fwrite函数
形如:fwrite(&myMapper, sizeof(FileMapper), 1, fp);
rtdb 2003-05-28
  • 打赏
  • 举报
回复
fwrite(&myMapper, sizeof(myMapper),1, hFile);

fread(&myMapper, sizeof(myMapper),1, hFile);
a_stupid_boy 2003-05-28
  • 打赏
  • 举报
回复
只好写一个单独的函数,分别将成员写入文件
再调用这个函数了。
WvW 2003-05-28
  • 打赏
  • 举报
回复
step_by_step(脚印) :
mark
step_by_step 2003-05-28
  • 打赏
  • 举报
回复
如果生成的文件只是给本机的同一个软件用,那么字节对齐的问题就无所为了
step_by_step 2003-05-28
  • 打赏
  • 举报
回复
用fwrite可是实现
但是你要注意,关于结构体字节对齐的问题。
因为你通过fwrite(&myMapper, sizeof(FileMapper), 1, fp);
生成的文件,如果放在别的主机上被别的程序解析的话,可能会出现各个主机字节不对齐的现象。
你应该让结构体以1字节对齐,然后写入到文件中

70,022

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧