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 :

casting DWORD en string, garder la même valeur


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Par défaut casting DWORD en string, garder la même valeur
    Bonjour !!!

    Alors vala, ça va peut-être paraitre simple, mais perso, je n'y suis pas arrivé...

    Je récupère un numéro de série via la fonction GetVolumeInformation. Ce dernier est de type DWORD. Dans mon cas, sur un drive précis, il me retourne -1860057003.

    Maintenant, j'aimerai pouvoir le transtyper en "string" pour pouvoir le manipuler plus facilement. Alors je mets en oeuvre un ostringstream dans l'espoir de le "caster" en string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        std::ostringstream oss1;
        oss1 << NumSerie;
        std::string result1 = oss1.str();
    Mais au final, result1 contient la valeur suivante : 2434910293

    Alors que j'aimerai avoir -1860057003, vous pensez bien

    Si vous avez une piste, je suis preneur.

    D'avance merci

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Piste : 2434910293 et -1860057003 correspondent à une même représentation binaire interprétée comme unsigned dans le premier cas et signed dans le second

  3. #3
    Membre chevronné Avatar de titouille
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    353
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 353
    Par défaut


    vi, je m'en étais douté... mais ça ne m'aide pas vraiment...

    A ce que je sache, je ne suis pas en train de travailler avec des "nombres"...

    Le DWORD me retourne la bonne valeur. Mais le casting en string non... c'est là que ça fusionne un peu, car je ne vois (comprend) pas pourquoi la valeur est modifiée de unsigned en signed...

    Je viens de faire des recherches à nouveau sur le sujet, et j'ai fais quelques tests qui me plongent encore plus dans le floue...

    Tu me dis que DWORD est un "substitut" (une sorte de typdef) pour les unsigned...
    Alors je me suis dit qu'en tentant, d'après d'autres exemples, de faire un sprintf pour passer la valeur dans un char, que je vais ensuite passer à un ostringstream pour en faire un string...

    Seulement... je pensais mettre %u pour passer un unsigned, mais si je fais ça, je me retrouve avec la valeur signée, alors que si je passe un %i, j'ai la bonne valeur...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	char s[10];
    	sprintf( s, "%i", NumSerie );
    	fprintf( stderr, "\nthis is a test... %s", s );

    Bon, après tests, ça passe comme une lettre à la poste, mais je reste très confus sur le %u et %i...

    Si tu peux m'expliquer en quelques mots le pourquoi du comment, ça serai vraiment très sympathique de ta part


    Merci beaucoup.

Discussions similaires

  1. Réponses: 11
    Dernier message: 27/03/2015, 12h51
  2. [AC-2007] Garder la même valeur précédente pour le nouvel enregistrement
    Par austin974 dans le forum Access
    Réponses: 3
    Dernier message: 22/03/2015, 15h32
  3. [MySQL] Garder même valeur d'un select après actualisation
    Par Anibel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 07/11/2013, 06h55
  4. [WRS] Garder la même valeur de filtre entre deux sections
    Par Dr Byby'San dans le forum Outils BI
    Réponses: 2
    Dernier message: 16/07/2013, 19h44
  5. Affecter la même valeur à plusieurs variables
    Par K20 dans le forum Langage
    Réponses: 7
    Dernier message: 03/01/2006, 23h54

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