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

C++ Discussion :

conversion (unsigned int64)->string


Sujet :

C++

  1. #1
    Membre �clair� 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
    Par d�faut conversion (unsigned int64)->string
    Bonjour.

    J'ai un type d�finit comme suit: (c'est un mot de 64 bits, ou 2 mots de 32 bits)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    typedef union
    {
      //1 mot de 64 bits
      unsigned __int64 motEntier;
     
      //2 mots de 32 bits
      struct
      {
        unsigned int part1;
        unsigned int part2;
      }mot32;
     
    } Mot64;
    �a je ne peux pas y toucher!

    Maintenant, j'essaie de mettre un de ces mots dans un string, mais �a ne marche pas des fa�ons que j'ai essay�:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    //init de mon mot:
    Mot64 monMot;
    monMot.motEntier=982280960055126;
     
    //un petit oss pour la conversion, et un string:
    ostringstream oss;
    string monString;
     
    //mes essais:
     
    oss << monMot.motEntier;
    //compilation error: operator '<<' is ambiguous
     
    oss << (unsigned __int64) monMot.motEntier;
    //compilation error: operator '<<' is ambiguous
     
    oss << (double) monMot.motEntier;
    //compilation error: conversion from unsigned __int64 to double not implemented, use signed __int64
     
    oss << (signed __int64) monMot.motEntier;
    //compilation error: operator '<<' is ambiguous
     
    oss << (int) monMot.mot32.part1 << (int) monMot.mot32.part2
    //ca compile et execute, mais evidemment ne me donne pas le bon resultat
    Si quelqu'un a une id�e je suis preneur, parce que la je s�che.
    Je suis bien all� voir la faq, comment convertir n'importe quel type d'objet en string, mais je ne comprend pas bien les classes templates.

  2. #2
    r0d
    r0d est actuellement connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 297
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 297
    Billets dans le blog
    2
    Par d�faut
    Pourquoi n'utilises-tu pas un simple sprintf ?

  3. #3
    Membre exp�riment�
    Avatar de superspag
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    153
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 153
    Par d�faut
    Chez moi �a marche tr�s bien

    Je crois que c'est juste un probl�me de configuration du compilateur.

    Si tu es sur Visual, vas dans
    - Propri�t�s de configuration
    - C/C++
    - G�n�ral
    - D�ctection des pb de portabilit� 64 bits : Oui (/Wp64)


  4. #4
    Membre �clair� 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
    Par d�faut
    @ r0d:
    ben pour finir j'ai fait un sprintf mais j'essaye d'�viter d'utiliser des fonctions C et de me mettre le plus possible � C++ (surtout pour apprendre C++ et oublier C quand c'est possible)


    @ superspag:
    merci beaucoup mais... �a marche pas.
    Je suis sur VisualC++ 6.0
    Dans "Project settings"->"C/C++"->"General",
    je n'ai pas de champ de "d�t�cton de pb de portabilit�".

    J'ai ajout� "/Wp64" dans "Project Options", mais � la compilation il y a une erreur:
    invalid numeric argument 'Wp64'
    Est-ce que quelqu'un sait ce que je dois faire?
    merci

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    L'option /Wp64 n'existe pas sous Visual 6, et le probl�me, c'est qu'il semblerait que sa STL ne supporte pas les __int64.

    Mon conseil: Passe par la fonction C sprintf()/_snprintf()/StringCchPrintf() (ou i64toa()) pour transformer ton entier 64bits en cha�ne de caract�res, et affiche la cha�ne en question ensuite...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre �clair� 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
    Par d�faut
    L'option /Wp64 n'existe pas sous Visual 6


    Merci. Je vais donc en effet rester au sprintf.

  7. #7
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. R�ponses: 2
    Dernier message: 03/04/2009, 17h46
  2. Conversion de char* en String^
    Par Sallie dans le forum MFC
    R�ponses: 2
    Dernier message: 09/05/2006, 16h27
  3. Conversion tableau de caractères / String
    Par Jayceblaster dans le forum Langage
    R�ponses: 3
    Dernier message: 21/04/2006, 11h21
  4. Conversion de char en string...
    Par Empty_body dans le forum Oracle
    R�ponses: 2
    Dernier message: 20/03/2006, 14h34
  5. [Java]Conversion de float en String et inversement
    Par djoukit dans le forum Langage
    R�ponses: 7
    Dernier message: 13/10/2005, 11h55

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