如何读取文件中的数据,并复制到一个结构体中??

lingye 2004-12-13 11:03:57
文件中的数据是经pack()后保存的,保存的结构与结构体一样
结构如下
typedef struct{
char Protocol [6];
char Version[4] ;
int PackSize;
char ServCode [10] ;
char FeeType ;
char FeeValue[7] ;
char CmdType ;
char CpName[21] ;
char Sender [21];
char Sendto [21] ;
char Msg [141];
char LinkID[8];
char MorelatetoMTFlag;
int MsgSeqNo ;
int Reserve2 ;
}SPack;

那怎么把文件里的内容复制到结构体中??谢谢
...全文
204 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lingye 2004-12-13
  • 打赏
  • 举报
回复
这样子行吗??
int main()
{
FILE *fp;
STSDLPack t1;
fp=fopen("1.log", "rb");
if(fread(&t1, 1, sizeof(STSDLPack), fp))
{
printf("%s\n",t1.Protocol);
printf("%s\n",t1.Version);
printf("%d\n",t1.PackSize);
printf("%s\n",t1.ServCode);
printf("%s\n",t1.FeeType);
printf("%s\n",t1.FeeValue);
printf("%s\n",t1.CmdType);
printf("%s\n",t1.CpName);
printf("%s\n",t1.Sender);
printf("%s\n",t1.Sendto);
printf("%s\n",t1.Msg);
printf("%s\n",t1.LinkID[8]);
printf("%s\n",t1.MorelatetoMTFlag);
printf("%d\n",t1.MsgSeqNo);
printf("%d\n",t1.Reserve2);

}
fclose(fp);
return 0;
}

carylin 2004-12-13
  • 打赏
  • 举报
回复
一个一个数据控制
BluntBlade 2004-12-13
  • 打赏
  • 举报
回复
将结构体的首地址转换成char *并指定读入的字节数就可以了。
bigbee 2004-12-13
  • 打赏
  • 举报
回复
不好意思。最先那个typedef不要的。
bigbee 2004-12-13
  • 打赏
  • 举报
回复
我想是不是可以这样:
typedef
union _buf
{
char tmpbuf[];
Spack pack;
}buf;

以后读文件时,fread到buf.tmpchar,自然也就到了pack里了。

69,373

社区成员

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

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