永发信息网

C语言不同程序对同一个结构体的文件存储和读取

答案:2  悬赏:20  手机版
解决时间 2021-03-18 08:58
小弟用C语言做一个东西
想要用一个程序( 字符界面 ) 对一个结构体进行输入和存储
用另外一个程序( 图形界面 ) 对相同的结构体进行读取显示
存储和读取用的是fwrite 和 fread函数
但是只有存储它的那个程序能正确读出来
图形界面的程序读取出来的数据不对。。。
从第二个开始全都是乱码了...
小弟还是比较渣的学生。。。
希望大神们多多指教
谢啦~
最佳答案
1、对齐方式。
程序编译时,可以选择对齐方式,如4字节对齐,8字节对齐。如果两个程序对齐方式不一致,可能导致结构体的大小在两个程序中不一样。可以用pragma pack包围定义的结构体,设置对齐。
#pragma pack(1)
struct ....
#pragma pack()
2、Big-Endian与Little-Endian。
如果文件是在一台机器上写,另一台机器上读,可能因为CPU的大小头不一致,导致读出的数字不正确。需要进行大小头转换。(如X86的是小头,Power的是大头)
全部回答
1。如果你知道存入文件的第一个结构是什么类型的,此种就非常方便了,自己根据 从文件读出的第一个结构里面的下个结构指针 来读文件中下个结构。 2。如果你不知道存入文件的第一个结构式啥类型,但又想分三个结构来存取,那你只能在每个结构里面加上一个变量来区分是什么结构,这样在读文件之前先读出这个变量,根据其值来判断结构类型
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
杨记老重庆川菜怎么去啊,有知道地址的么
笔记本电脑连接wifi受限,而且不出现黄色感叹
买了一个蓝牙键盘,别的都还好,就是那个回格
12毫米玻璃容重是多少?(急)
过去,只不过是一段我们告诉别人的故事。
聊城海乐迪的老板是谁
许胡庄地址在什么地方,想过去办事
钓鱼玩黑坑,屁股绝对了你的鱼获,你知道什么
我想找一个单纯点的女孩,但是现在这个社会,
草字头加四念什么
唐三在成神的时候把谁带进神界
金华市金东区大的工业园有哪些?
qq自由幻想月光岛的宠物哪个好
上海虹桥火车站候车厅晚上可以呆吗
三湘汽配城在什么地方啊,我要过去处理事情
推荐资讯
ita15n50a管如何检测
六国破灭,非冰不利,战不善,弊在赂秦。什么
重庆那里有卖活的黄鼠狼
用猫直接上网可以,用路由器 就遇到本地连接2
两天没便便了。。今天大便出血块。
长春曼胡默尔富维滤清器有限公司在什么地方啊
table = DBHelper.GetDataSet(sql); 是调用连
1.在中国,招聘一个人的成本是多少?可以针对
坦然和坦诚的区别
怎样用英语介绍保护大熊猫
建行信用卡提临额是取现金额吗
脚的皮肤很容易破,特别是脚背上,感觉皮很薄.
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?