我在解析 char[] 的内容时遇到问题。它包含字节,可以格式化为 ASCII 字符串。然而,最后两个字节是 CRC。因此,我将除数组中最后两个条目之外的所有内容都以十六进制格式解释为字符串:
std::ostringstream payload;
std::ostringstream crc;
payload << std::hex;
crc << std::hex;
// last two bytes are CRC
for (int i = 0; i < this->d_packetlen - 2; i++)
{
payload << static_cast<unsigned>(this->d_packet[i]);
for (int j = i; j < this->d_packetlen; i++)
{
crc << static_cast<unsigned>(this->d_packet[j]);
}
}
std::string payload_result = payload.str();
std::string crc_result = crc.str();
fprintf(d_new_fp, "%s, %s, %d, %d\n", payload_result.c_str(),
crc_result.c_str(), this->d_lqi, this->d_lqi_sample_count);
这不起作用,我不确定为什么会这样?有没有更简单的方法将未签名的字符转换为 ASCII?
最好的,马吕斯