gpt4 book ai didi

c++ - unsigned char* 在 C++ 中加倍

转载 作者:行者123 更新时间:2023-11-30 00:49:27 25 4
gpt4 key购买 nike

我正在通过以下方式将 double 值复制到 unsigned char* 中。

    unsigned char* cmdBody;
double val = (double)-1;
std::ostringstream sstream;
sstream << val;
std::string valString = sstream.str();

unsigned int dataSize = valString.size() + 1;
cmdBody = (unsigned char*)malloc(dataSize);
memset(cmdBody, 0, dataSize);
memcpy(cmdBody, (unsigned char*)valString.c_str(), dataSize - 1);
cmdBody[dataSize - 1] = '\0';

我需要从 cmdBody 将值转换为 double 类型。怎么做?

最佳答案

C 多少?

如果您只使用 std::string,您的解决方案将非常简单:

const auto val = -1.0; // Input double
const auto cmdBody = std::to_string(val); // Convert double to a std::string
const auto foo = std::stod(cmdBody); // Convert std::string to a double

重要的是要注意,在构造 std::string 时不需要分配、memcopy 或 null 终止。这极大地简化了您的代码。

关于c++ - unsigned char* 在 C++ 中加倍,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28108993/

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