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 :

valeur d'une variable qui change quand on la met dans buffer[i]


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 37
    Points
    37
    Par défaut valeur d'une variable qui change quand on la met dans buffer[i]
    Salut à tous,

    Voilà mon problème, j'ai le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    unsigned char buffer[255];
    char canal[10]; //cette variable contient la valeur 25
    int canal_convert(0);
    //je converti canal en un entier
    canal_convert =atoi(canal); //canal_convert contient tjrs la valeur 25
    
    //je rempli un buffer de différentes valeurs
    ...
    buffer[10] = canal_convert; //sauf que cette variable contient désormais la valeur 19!!!!
    Je ne comprend pas ce qui se passe!! où est passé mon 25???

    Merci de m'aider!!

  2. #2
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    j'aimerais bien savoir comment tu mets ton 25 dans canal !?

    sinon, as tu utilisé ton débuggeur pour regarder step-by-step comment évoluent tes variables ?
    besoin de réponses ? demande a un pote

  3. #3
    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,

    19 c'est 25 en hexadécimal, ça a sans doute un lien...

    MAT.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 37
    Points
    37
    Par défaut
    Bonjour
    merci pour vos réponses
    En fait la valeur 25 a été récupérée à partir d'un fichier et j'ai fait le step by step...ça cloche au niveau de buffer[11] = canal;

    J'aimerais savoir s'il n'existerait pas un moyen pour garder l'intgrité de la valeur de ma variable!!

    Merci

  5. #5
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    Citation Envoyé par skyangel20
    ça cloche au niveau de buffer[11] = canal;
    tu m'étonne ! on n'affecte pas de strings de style C (pointeurs de caracteres) avec l'opérateur =.
    utilise strcpy() et ses variantes a la place !
    besoin de réponses ? demande a un pote

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 37
    Points
    37
    Par défaut
    En fait après avoir bien chercher, il parait que puisque la valeur de 25 en hexa =19, je récupére la valeur en hexa!!

    Il faut donc faire une routine basé sur le code BCD pour pouvoir garder la valeur en décimal de canal!!!

    je posterais cette routine quand je l'écrirais!! au cas où ça aiderais quelqu'un!!!


    Merci beaucoup, beaucoup pour toutes vos réponses...et très très bonne journée

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    65
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Points : 37
    Points
    37
    Par défaut
    Comme promis voici la fonctio qui permet de conserver la valeur en décimal d'une variable :

    int toBCD(char* X)
    {
    int X2 = atoi(X);
    int AH(X2/10);
    int AL(X2-AH*10);
    X2 = (AH<<4) | AL;

    return X2;

    }

    Bonne journée!!

Discussions similaires

  1. [PHP 5.4] récupérer la valeur d'une variable qui se trouve dans un fonction
    Par aspkiddy dans le forum Langage
    Réponses: 2
    Dernier message: 11/02/2014, 17h06
  2. Réponses: 2
    Dernier message: 02/04/2008, 19h55
  3. [JMeter] Récupration d'une variable qui change à chaque process
    Par vendeeman dans le forum Tests et Performance
    Réponses: 3
    Dernier message: 11/12/2007, 12h00
  4. Réponses: 5
    Dernier message: 04/12/2007, 19h30
  5. Réponses: 7
    Dernier message: 16/06/2006, 16h31

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