解析char []的内容时出现问题。它包含字节,可以被格式化为ASCII码。然而最后两个字节是CRC。因此,我解释一切,但最后两个条目数组中的十六进制字符串:将unsigned char []解析为std :: string
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?
最佳, 马吕斯
定义“不起作用”。不编译?不链接?不运行?运行但产生错误的结果? –
它输出垃圾。绝对不是ASCII,但这就是我的目标。虽然在那里有字节格式的ASCII值。 – wishi
'unsigned char's是ASCII字符或非ASCII字符,不能转换为ASCII字符。 – Gandaro