Raphy2145
Messages postés7Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention 4 mars 2005
-
24 févr. 2005 à 19:20
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 2006
-
10 mars 2005 à 18:27
Bonjour à tous,
Je suis débutant en C++, et c'est pas très glorieux...
Je me tourne vers vous parce que je me galère vraiment sur un point de détail que je n'arrive pas à résoudre, et qui va sûrement vous prendre 2s .
Quelque part dans mon code, je me retrouve avec un char *buffer = "A106B4", et je voudrais récupérer la valeur int qui correspond à cette chaîne de caractères en hexa.
Raphy2145
Messages postés7Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention 4 mars 2005 25 févr. 2005 à 14:02
Ben non justement, dans mon cas je veux récupérer la valeur hexa parce que ma chaîne de caractères représente un hexa, mais elle pourrait représenter un décimal. Et il n'est pas toujours possible de faire la différence (je défie quiconque de me dire si qd j'écris "13", c'est de l'hexa ou du décimal...).
A mon humble avis, c'est pour ça qu'a été créé le 3ème paramètre de strtol ; sinon il n'y serait pas .
En tous cas, merci pour ta réponse, le strtol est une solution qui fonctionne.
Raphy2145
Messages postés7Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention 4 mars 2005 25 févr. 2005 à 12:59
Là par contre j'ai un petit doute... Comment le cast ferait la différence entre un "345678" en décimal et un "345678" en hexa... (s'il n'y a pas de 0x0)?
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 25 févr. 2005 à 20:10
Vous etes quand meme désolant, il n'y a que la solution que j'ai donné
qui fait vraiment partie du langage C++, c'est aussi la plus simple à
comprendre avec en plus le controle d'erreur.
Je ne comprends pas comment on peut preferer la solution C ??
Faire du C avec un compilateur C++ c'est aussi bete que d'acheter la derniere carte 3D pour jouer à tetris.
G.rom
Messages postés2Date d'inscriptionmercredi 5 novembre 2003StatutMembreDernière intervention 9 mars 2005 9 mars 2005 à 19:14
Salut tout le monde !
Effectivement, la solution de steve_clamage est belle et propre, et tres simple :
Celle-ci se resume a :
chaine >> hex >> valeur;
quoi de plus simple !?
Bon, effectivement il faut que chaine soit un istringstream ... ce qui
implique de savoir coder proprement en C++ ... conclusion : apprendre
le C avant le C++ est, à mon avis, une mauvaise idée. (Et je dis ca car
j'en fait chaque jours les frais..)
Et le prochain qui met un .h a iostream !!!
D'ailleurs, steve_clamage, peux-tu nous indiquer quel est le meilleur
moyen de bien coder en C++ (livres, sites web) sans avoir recours aux
vieillissantes fonctions C ..
steve_clamage
Messages postés475Date d'inscriptiondimanche 3 octobre 2004StatutMembreDernière intervention11 août 20065 10 mars 2005 à 18:27
merci,
Pour les livres, je dirais ceux de B. Stroustrup (le dernier) car ca
reste la référence, il faut aussi regarder du coté des ouvrages ed.
Addison Wesley.
Plus rapide, pour se décrasser et avoir conscience de son niveau, la faq C++: