Comment voulez-vous convertir un struct dans un tableau de char?
Je suis un peu confus sur la façon de convertir en une structure de type char[] dans C.
Mon CDMA modem ne prend pas en charge l'envoi de variables -, il ne comprend que des caractères ASCII. J'ai besoin de faire l'opération de conversion.
Disons que j'ai un sMSG struct comme ceci:
struct sMSG
{
int a;
int b[];
char c[];
double d;
float f;
};
Donc, je dois faire une chaîne de caractères comme char str[] = "sMSG_converted_into_ASCII_chars";
Je me demandais si quelqu'un va m'aider sur ce, s'il vous plaît.
Merci d'avance.
- Ont-ils être
ASCII
ou peuvent-ils être0-255
? Aussi, utiliser la définition réelle de votre structure. - elles doivent être au format ASCII!
- Qui 'envoie' ce qui?
- Bon, dire que l'octet
240
apparaît quelque part dans votre structure. Comment cela sera envoyée au modem ? - Sont l'émetteur et le récepteur de différents types de machines (endian-ness, la taille de mot)? Qui est d'une importance primordiale.
- cnicular, cdma modem fonctionne comme ceci: pour envoyer 1234-> AT$TCPWRITE=31323334 ainsi, au lieu 1234, je devrais avoir une structure.
- Ce n'est toujours pas répondre à la question " qui envoie des données à qui?". Quelles sont les machines utilisées? Quel est le mode de communication?
- cdma modem(3g-CC864 module) envoie des données au serveur, le mode de communication sans fil.
InformationsquelleAutor | 2012-04-03
Vous devez vous connecter pour publier un commentaire.
Vous devez d'abord copier les données de la structure dans un tableau d'octets
Maintenant utiliser une fonction pour convertir le tableau d'octets en Base64 texte ou juste représentation hexadécimale (2 caractères/octet). Puisque vous utilisez la balise intégrée, celui-ci pourrait être la plus facile à mettre en œuvre.
sprintf
dans un assez grand tableau, mais cette solution est mieux! Lesprintf
solution a un problème de manipulation des séparateurs de champ.memcpy
de cette façon (ou plutôt les pointeurs être copié)?