conversion chaine hexa en int
Hello.
J'ai un petit souci, je souhaite appeller mon prog avec une liste d'argument qui représentent des valeurs hexa (comprise entre 00 et FF). du genre:
Citation:
>monProg.exe A0 B2 12 2F
monProg est une simple boucle qui doit traiter les entiers A0, B2, etc...
Je dois donc convertir ma chaîne "A0" en un entier 0xA0
Problème: en C je ferais un strtol qui permet de convertir en indiquant la base (16).
Mais je souhaite utiliser une "vraie méthode C++"
Alors je regarde dans la F.A.Q (et dans quelques cours) et à chaque fois on me propose de crée un istringstream (ou un istrstream ou autre objet abstrait et obscur) et ça a l'air magique, il suffit de faire
Citation:
monIStringStream >> monEntier
Mais je ne trouve pas comment lui indiquer que ma chaîne de caractère est en hexa et non en décimal.
Est-ce qu'il existe un moyen facile de faire ce que je veux? Et sinon, quel est le moyen (compliqué) en C++.
Je veux pas utiliser strtol, car tout le monde me bassine en disant qu'en C++, la gestion des chaines de caractères et grandement simplifiée par rapport au C, mais à chaque fois que je veux faire autre chose que simplement "afficher une chaine", et bien je trouve pas que c'est simplifié (imagine, pour transformer une chaine en nombre tu dois utiliser une variable de type istringstream, ouh! c'est vrai que simple comme bonjour!) Alors je pense qu'il y a quelque chose que j'ai pas encore compris, et c'est pas en faisant du C dans mon C++ que j'y arriverai.
Merci de votre aide!