| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5657 人关注过本帖
标题:如何将一个结构体的内容全都保存到一个字符串里?
只看楼主 加入收藏
lqab1983
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-11-29
结帖率:16.67%
收藏
已结贴  问题点数:20 回复次数:9 
如何将一个结构体的内容全都保存到一个字符串里?
有一个结构体,如下:
typedef  struct{
    double  latitude;  //经度
    double  longitude; //纬度
    int     latitude_Degree;    //度
    int    latitude_Cent;        //分
    int       latitude_Second;    //秒
    int     longitude_Degree;    //度
    int    longitude_Cent;        //分
    int       longitude_Second;   //秒
    float     speed;      //速度
    float     direction;  //航向
    float     height_ground;    //水平面高度
    float     height_sea;       //海拔高度
    int     satellite;        //卫星数
    uchar     NS;
    uchar     EW;
    DATE_TIME D;
}GPS_INFO;


char *context = NULL;  GPS_INFO GPS;
我想把其中内容都放到一个字符串里 用memcpy(context, &GPS,sizeof(GPS_INFO)); 对吗?  我怎么觉得不对啊?printf不出东西来?
搜索更多相关主题的帖子: direction double 结构体 字符串 speed 
2013-11-29 10:54
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:4 
char *context = NULL
这只是定义一个指针吧。只是一个地址吧。或许你可以定义一个数组?
char context[1024];

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-11-29 10:57
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
概念不清之下提出的錯誤問題

授人以渔,不授人以鱼。
2013-11-29 11:07
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:4 
有这个必要吗?
那你干嘛还要定义结构体

三十年河东,三十年河西,莫欺少年穷!
2013-11-29 11:10
lqab1983
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2013-11-29
收藏
得分:0 
你们说该怎么做啊?光说不对。。。 那段GPS解析的,人家就这么定义的数据类型 。我试过了,很对。我是想写个函数叫通信申请 int BD1_TXSQ(u32 Dest_Address, char *context)  想每次通信都调用这个函数。参数context作为通信内容。我不能这次调用通信 传结构体内容 ,下次调用传字符串 还写2个类型吧。  能指明怎么回事吗?
2013-11-29 13:13
so_love
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:蒙面侠
威 望:7
帖 子:812
专家分:4151
注 册:2013-11-25
收藏
得分:0 
那你就定义一个字符数组吧。。然后把内容存在数组里

一花一世界、一叶一追寻、片片花叶落、情系何人身。
2013-11-29 13:44
zhaogay
Rank: 7Rank: 7Rank: 7
来 自:宫
等 级:黑侠
帖 子:151
专家分:586
注 册:2013-10-10
收藏
得分:4 
结构体那么多的类型在一起解析成字符串,printf打出来应该是乱七七的,或者不可见的。context 不知道有木有分配内存也是个问题,其他的应该没有了。
楼主要测试的话,可以先给context 分配一定内存,然后把结构体考进去。然后可以用memcpy每次考几个字节出来转成int float的,也可以,或者再用结构体对字符串context做个整体的强制转换到新的结构体里,一般通信应该都是整体转的,特殊除外。

好好学习,天天想上
2013-11-29 14:02
li_local
Rank: 2
等 级:论坛游民
帖 子:35
专家分:59
注 册:2013-11-21
收藏
得分:4 
结构体变量的地址强制类型转换为char *型的。楼主要注意下context指向的空间是否需要在堆中。
2013-11-30 09:59
famouscat
Rank: 1
来 自:'lkjh''
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-3-5
收藏
得分:0 
printf() 遇到空字符就停止打印了

'
2020-03-05 19:25
famouscat
Rank: 1
来 自:'lkjh''
等 级:新手上路
帖 子:2
专家分:0
注 册:2020-3-5
收藏
得分:0 
'dsdsa
   

'
2020-03-05 19:25
快速回复:如何将一个结构体的内容全都保存到一个字符串里?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.036036 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved