J'ai un problème avec l'analyse du contenu d'un char []. Il contient des octets, qui peuvent être formatés comme des piqûres ASCII. Les deux derniers octets sont cependant CRC. Par conséquent, je tout interprète, mais les deux dernières entrées dans le tableau en hexadécimal à chaîne:Parse 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);
Cela ne fonctionne pas, et je ne suis pas sûr pourquoi? Existe-t-il un moyen plus simple de convertir des caractères non-chiffrés en caractères ASCII?
Best, Marius
Définir "ne fonctionne pas". Ne compile pas? Ne pas lier? Ne fonctionne pas? Fonctionne mais produit de mauvais résultats? –
Il génère des déchets. Certainement pas ASCII, mais c'est mon objectif ici. Il y a cependant des valeurs ASCII formées par octets. – wishi
'Les caractères non signés sont des caractères ASCII ou des caractères non-ASCII, qui ne peuvent pas être convertis en caractères ASCII. – Gandaro