IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SL & STL C++ Discussion :

conversion chaine hexa en int


Sujet :

SL & STL C++

  1. #1
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut 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:
    >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
    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!

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Points : 1 543
    Points
    1 543
    Par défaut
    Salut,

    Il suffit de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monIStringStream >> std::hex >> monEntier;
    Cf. la FAQ

    MAT.

  3. #3
    Membre actif Avatar de Biosox
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 298
    Points : 203
    Points
    203
    Par défaut
    merci!
    je m'étais borné au chapitre sur les chaines de caractère
    je vais chercher un F.A.Q qui explique comment lire une F.A.Q

    merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion chaine en hexa, return int.
    Par Oseam dans le forum C
    Réponses: 13
    Dernier message: 19/02/2013, 12h58
  2. convertion chaine hexa en int
    Par nadisate dans le forum C++
    Réponses: 1
    Dernier message: 17/04/2009, 12h43
  3. [T-SQL]Conversion chaine de caracteres -> HEXA
    Par julio84 dans le forum Sybase
    Réponses: 1
    Dernier message: 21/09/2006, 08h28
  4. [SYBASE][T-SQL]Conversion chaine de caracteres -> HEXA
    Par julio84 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/09/2006, 16h28
  5. [VB.NET] Convert chaine hexa -> int
    Par Tempotpo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/03/2005, 08h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo