Conversion ascii hexadecimal

[Résolu]
Signaler
Messages postés
8
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
15 juillet 2009
-
Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011
-
Bonjour,
je vous expose mon problème: je lis des données ASCII sur un port RS232 grace a la fonction ReadFile
et je les stockent dans buf. Je cherche a convertir chacun des caractères ASCII de buf en hexadécimal ( ce que je fais avec le sprintf  dans la boucle for), jusque là tout va bien, mais je veux ensuite rècuperer toutes les conversions dans une chaine de caractères les unes au bout des autres.
exemple : si je lis sur le port en ASCII  "+" puis "5" la conversion va me donner en hexa "2B" puis "35"
je voudrais donc recuperer une variable type string qui contiendrait "2B35" .
Je suis sur c'est bidon mais je bloque = )         ( j'espere avoir été clair )

Voici la partie de mon programme concernée:

    char hex[8] = {0} ;
    ClearCommError(m_hCom, &dwErrorflags, &Comstat);
    length=min(dwLength, Comstat.cbInQue);
    ReadFile(m_hCom, buf, length, &length, &m_osRead);

    nLength=length;
     if (nLength)
    {
        for (int i =0; i<nLength;i++)
        {       
            sprintf(hex, "%x", buf[i]);
            MessageBox(hex);

                if (buf[i]= ='\r')
            {    
                iline=iline+1;
                str+='\r\n';
            }

             else
                str+ =buf[i];
        }

4 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
7
Salut
Effectivement tu n'as pas alloué de la mémoire pour ta variable chaine...
char chaine[50] ou char *chaine=new char[50]
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011

déclaration chaine[100]; // par exmple pour 100 caratère
Messages postés
118
Date d'inscription
mercredi 24 décembre 2003
Statut
Membre
Dernière intervention
11 décembre 2011

J'ai pas bien saisie ton problème tu veux recrée une chaine ? si c sa essai

sprintf(hex,"%x",buf[i]);
strcat(chaine,hex);
Messages postés
8
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
15 juillet 2009

J'ai essayé avec le strcat mais ca plante quand je l'utilise,
j'ai peut etre mal déclaré chaine  ( char* chaine; )
le problème c'est qu'apres le sprintf je n arrive pas a stocker la valeur de hex dans une chaine de caractères