gpt4 book ai didi

c++ - 将 int 数据存储和读取到 char 数组中

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:25:02 24 4
gpt4 key购买 nike

我正在尝试将两个整数值存储到 C++ 中的一个字符数组中。这是代码..

char data[20];
*data = static_cast <char> (time_delay); //time_delay is of int type
*(data + sizeof(int)) = static_cast<char> (wakeup_code); //wakeup_code is of int type

现在在程序的另一端,我想反转这个操作。也就是说,我需要从这个char数组中获取time_delay和wakeup_code的值。

我该怎么做?

谢谢,尼克

P.S:我知道这是一种愚蠢的做法,但请相信我这是一种限制。

最佳答案

我想当你写static_cast<char> ,该值将转换为一个 1 字节的字符,因此如果它不适合以字符开头,您将丢失数据。

我要做的是使用 *((int*)(data+sizeof(int)))*((int*)(data+sizeof(int)))用于读取和写入数组的整数。

*((int*)(data+sizeof(int))) = wakeup_code;
....
wakeup_code = *((int*)(data+sizeof(int)));

或者,您也可以这样写:

reinterpret_cast<int*>(data)[0]=time_delay;
reinterpret_cast<int*>(data)[1]=wakeup_code;

关于c++ - 将 int 数据存储和读取到 char 数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8163095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com