现有一个数据结构如下:
struct cmd{
              char a;
              long b;
              int c;
              ...
              ...
              ...
};
如何将这个结构的成员值赋值给一个字符串Str,由于成员项太多,所以不能单独一个一个赋值.
           

解决方案 »

  1.   

    先给字符串Str分配对应结构大小的空间,然后做内存拷贝
      

  2.   

    char * chData;
    int nLen = sizeof(cmd);
    chData = new char[nLen+1];
    strcpy(chData,(char *)&cmd);
    chData[nLen] = '\0';
    CString strData = chData;
      

  3.   

    我看还是选把struct内容转成HEX字符串的好,要不然当中有个值是0,你这个字不就不对了吗?
    char buf[sizeof(struct)*2+1] = { 0 };
    BYTE * datap = (BYTE*)&cmd;char[3] ch= { 0 };
    for( int i = 0; i < sizeof(cmd); i++ )
    {  wsprintf(ch,"%2.2x", *(datap+i));
       buf[i*2+0] = ch[0]; buf[i*2+1] = ch[1];
    }
    buf[sizeof(cmd)*2] = 0;
      

  4.   

    楼上的 请问 char[3]ch={0}是什么意思啊?