chaine, hexa, conversion... - C++ - Programmation
Marsh Posté le 04-09-2002 à 11:35:27
a écrit a écrit : |
déjà essayé, ça marche pas... :
warning C4047: '=' : 'unsigned char ' differs in levels of indirection from 'char *' à la compile et je me retrouve avec "," dans ucTruc[0]
Marsh Posté le 04-09-2002 à 11:37:06
Pour répondre à côté : le 0x25, il est généré par quoi ? Y aurait pas moyen (:D) de stocker directement la valeur int (ce qui simplifierait grandement la vie) quitte à afficher une valeur hexa si besoin pour autre chose mais à stocker numérique et pas chaîne ?
Je suis pas sûr que atol() atoi() savent décoder le "0x25", faudrait tester (??).
Marsh Posté le 04-09-2002 à 11:37:09
Je ne comprend pas trop bien ton : (buff "=" "0x25" ) ...
Sinon je peux te dire que buf est un pointeur donc tu peux faire : ucTruc[0] = *buf;
Marsh Posté le 04-09-2002 à 11:37:19
heeee c'est pas cool !!!! il est passé où le message d'avant ????
Marsh Posté le 04-09-2002 à 11:39:12
Code :
|
Fait gaffe à ce que ton nombre ne dépasse pas 255 par contre.
Marsh Posté le 04-09-2002 à 11:39:52
jan a écrit a écrit : heeee c'est pas cool !!!! il est passé où le message d'avant ???? |
quel message
Marsh Posté le 04-09-2002 à 11:43:13
bon alors j'explique calmement...
je récupère une valeur en hexa (j'ai pas le choix) dans buf déclaré comme char buf[10] (pour bien vous embrouiller je le récupère sous forme de chaine !! )
ça ça marche, j'ai bien buf = "0x25"
ensuite je veux mettre ce que j'ai récupéré dans buf dans un unsigned char ucTruc[0]
au final je veux ucTruc[0] = 0x25
voili voilou !
merci pour vos réponses déjà !
Marsh Posté le 04-09-2002 à 11:43:47
letoII a écrit a écrit : quel message |
celui que t'avais écrit en premier !
Marsh Posté le 04-09-2002 à 11:49:50
jan a écrit a écrit : bon alors j'explique calmement... je récupère une valeur en hexa (j'ai pas le choix) dans buf déclaré comme char buf[10] (pour bien vous embrouiller je le récupère sous forme de chaine !! ) ça ça marche, j'ai bien buf = "0x25" ensuite je veux mettre ce que j'ai récupéré dans buf dans un unsigned char ucTruc[0] au final je veux ucTruc[0] = 0x25 voili voilou ! merci pour vos réponses déjà ! |
je t'ai filé la soluce
Marsh Posté le 04-09-2002 à 11:54:47
ben ça lui plait pas, il me fait un bel access violation...
Marsh Posté le 04-09-2002 à 12:17:39
jan a écrit a écrit : vous êtes partis manger ou vous séchez comme moi ?? |
leto2 t'a filé la bonne réponse, y a rien à dire de plus
Marsh Posté le 04-09-2002 à 12:19:18
Smaragdus a écrit a écrit : leto2 t'a filé la bonne réponse, y a rien à dire de plus |
ben si, ça me fait un "access violation" donc c'est pas tout à fait la bonne solution malheureusement
Marsh Posté le 04-09-2002 à 12:23:43
ben tant pis, je vais m'y prendre autrement...
merci pour tout qd même !!
Marsh Posté le 04-09-2002 à 12:47:53
Je viens de vérifier que atoi() ne donne rien,
mais
{
char tt[32], tst[10];
int aa;
strcpy(tst, "0x25" );
sscanf(tst, "%x", &aa);
sprintf(tt, "%d", aa);
MessageBox(hWnd, tt, "valeur de 0x25", MB_OK);
}
comme suggéré par letoii fonctionne très bien : on obtient 37 décimal, ce qui est bien l'équivalent de 25Hexa.
Il doit y avoir un pb avec la chaîne, pb pointeur, .. ???
Dans aa, on a 37 décimal, 25 hexa, 101001 en binaire.
Marsh Posté le 04-09-2002 à 13:05:46
jan a écrit a écrit : ben si, ça me fait un "access violation" donc c'est pas tout à fait la bonne solution malheureusement |
Ouai effectivement j'ai fait une petite bouze mais bon t'aurais pu corriger
Code :
|
Marsh Posté le 04-09-2002 à 11:28:21
Hello !
Bon, un truc tout con mais chiant...
j'ai un buffer char buf[10]
dedans je met 0x25 (buff "=" "0x25" )
je veux mettre le contenu de buf dans un unsigned char, comment je fais ??
sachant que ucTruc[0] = buf il aime pas beaucoup !
merci !!