| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4797 人关注过本帖
标题:如何将结构体里的数据打印出来
只看楼主 加入收藏
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
结帖率:93.75%
收藏
已结贴  问题点数:20 回复次数:3 
如何将结构体里的数据打印出来
typedef struct
{  
    short SoeTieDian;
    short SoeMS;  
    short station_mod;
    short fault_delay;
    short para_set;
    short reserve_s6;
    short reserve_s7;
    short reserve_s8;
    short DatBySCD;
    short reserve_s10;
    float reserve_f1;
    float reserve_f2;
    short AVC_delay;
    short AVC_YK_timeout;
    char  reserve_c[36];
}Share_SwitchS_F0;
例如结构体变量是这个样子的,我如何把这些量以结构体的形式打印出来,16进制的数也可以。像Share_SwitchS_F0=xxxxxxxx。这种整体输出
搜索更多相关主题的帖子: 打印 结构体 short 数据 float 
2019-10-16 18:17
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:0 
这串xxxxxxxx是什么意思?
2019-10-16 20:48
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:0 
就是我可以不去区分这个结构体里各个成员的内容,可以直接把这个结构体内存空间里的数据以16进制全部取出来后,人工分析就行。因为要取的数据在许多不同的结构体中,想找到一种不论结构体结构是什么样子的,都能把数据取出来的方法。

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2019-10-17 08:36
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
回复 3楼 纯蓝之刃
那你就将之当成一整块内存打印呗
程序代码:
#include <stdio.h>

void printmemory( const char* varname, const void* mem, size_t size )
{
    printf( "{%s=", varname );
    for( size_t i=0; i!=size; ++i )
        printf( "%02hhX", ((const unsigned char*)mem)[i] );
    printf( "}\n" );
}
#define PRTMEM(sn) printmemory(#sn,&sn,sizeof(sn))

struct foo
{
    int a;
    int b;
};

struct bar
{
    int a, b, c;
};

int main( void )
{
    foo f = { 1, 2 };
    PRTMEM( f );

    bar b = { 1, 2, 3 };
    PRTMEM( b );
}

一种可能的输出是:
{f=0100000002000000}
{b=010000000200000003000000}

2019-10-17 08:55
快速回复:如何将结构体里的数据打印出来
数据加载中...
 
   



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

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