C++String对象转换char类型数组

        今天写代码的时候碰到一个问题,需要我从数据库取一个寄存器地址的数据,并将数据存入到一个char类型的数组当中。

        我的解决思路是这样的,既然我要拿到这个数据,那就先把数据从寄存器中取出来,寄存器的配置大小为八个字节,所有我设置一个 unsigend long long类型,大小为8个字节。

        unsigend long long status = 0;

        在 C++中,可以使用 bitset 类来存储二进制数据。首先,使用 ReadItem 函数读取寄存器地址的数据,并将其存储在一个字节数组中。

        ReadItem(bPn, 0x0040, (BYTE *)&ddStatus1);

        然后,将该字节数组转换为 bitset 对象。

        std::bitset<64> sbArrStatus1(ddStatus1); 

        并使用 to_string 函数将其转换为字符串。

        string str1 = sbArrStatus1.to_string();

        最后,将该字符串存储在一个 char 数组中。

        char cArrStatu1[64] = { 0 };

        strcpy(cArrStatu1,str1.c_str());

        具体过程就是先将寄存器地址中的数据取出来,寄存器数据大小为8个字节,那就使用8个字节类型的对象来取数据,再将取数据的对象转换成对应大小的字节数组,再将数组通过to_string转换成string类型,再建立对应大小的数组,通过拷贝将字符串拷贝到数组中去。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值