Envoyé par
Nemesis007
Je pensais que le sprintf n'accepté pas les int enfin bref une erreur de débutant
En fait *printf() attend un unsigned avec "%X". Il faut un cast explicite si la variable n'est pas de ce type.
sprintf (HexTemp1, "%X", (unsigned) Temperature1);
Parcontre, le résultat est bien "0320" mais je n'ai que "320" comment puis-je rajouter le caractère '0' ?
Pour formater sur 4 digits avec des 0 en tête, il faut utiliser "%04X" :
sprintf (HexTemp1, "%04X", (unsigned) Temperature1);
Ton code est inutilement compliqué.
1 2 3 4 5
|
unsigned int Temperature1 = 800;
char ChaineAEnvoyee[20];
sprintf (ChaineAEnvoyee, "%s%04X", "040302"
, (unsigned)Temperature1); |
ou même
1 2 3 4
|
unsigned int Temperature1 = 800;
char ChaineAEnvoyee[20];
sprintf (ChaineAEnvoyee, "040302%04X", Temperature1); |
Partager