Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1281 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Probleme de conversion en hexa.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme de conversion en hexa.

n°1199518
zied3
Posté le 14-09-2005 à 17:09:14  profilanswer
 

Salut tout le monde,
je suis entrain de developper une application sous VC++ 6.0, j ai eu le besoin de retouver le code hexa de toute une chaine de caractere (caractere par caractere: la chaine "0123" devient "30313233" par exemple),
j ai pensé a faire sprintf (Output,"%x",Ma_Chaine) , mais voila ça ne marche pas en fait si je fais: sprintf (Output,"%x","a" ) ou bien sprintf (Output,"%x","z" ), le resultat est le meme :??:  , je retrouve dans ma chaine:4154e4; et ce pour n importe quelle carcactere que je veux transformer!!!!
Bon je vous demanderai juste si vous avez une idée pour convertir ça, si pour la meme occasion vous avez une explication ....
merci d'avance.

mood
Publicité
Posté le 14-09-2005 à 17:09:14  profilanswer
 

n°1199531
jesus_chri​st
votre nouveau dieu
Posté le 14-09-2005 à 17:15:09  profilanswer
 

là tu passes en parametre une chaine, donc un pointeur !!

n°1199534
jesus_chri​st
votre nouveau dieu
Posté le 14-09-2005 à 17:18:15  profilanswer
 

Code :
  1. extern char* output; /* alloué */
  2. char ch[] = "ma chaine blablabla";
  3. char* c = ch;
  4. size_t n = 0;
  5. while (*c)
  6. {
  7.    n += sprintf(output+n, "%x", *c++); 
  8. }


 
en supposant output assez grand


Message édité par jesus_christ le 14-09-2005 à 17:20:05
n°1199536
zied3
Posté le 14-09-2005 à 17:23:40  profilanswer
 

Thanks Jesus!!

n°1199682
Taz
bisounours-codeur
Posté le 14-09-2005 à 20:31:14  profilanswer
 

c'est du C ça. et du C buggé
 
 

Code :
  1. #include <string>
  2. #include <sstream>
  3. namespace
  4. {
  5.   std::string
  6.   hexify(const std::string &s)
  7.   {
  8.     std::ostringstream out;
  9.     out << std::hex;
  10.     for (std::string::size_type i = 0; i != s.size(); ++i)
  11.       out << unsigned(s[i]);
  12.     return out.str();
  13.   }
  14. }
  15. #include <iostream>
  16. #include <string>
  17. int main()
  18. {
  19.   std::string line;
  20.   while (std::getline(std::cin, line))
  21.     std::cout << hexify(line) << '\n';
  22. }


 
c'est tellement plus simple.

n°1199686
Taz
bisounours-codeur
Posté le 14-09-2005 à 20:39:48  profilanswer
 

tu peux rajouter ça
 

Code :
  1. out.width(2);
  2.     out.fill('0')

pour avoir une écriture plus sympa.
 
boost::format pour ceux qui ont sinon

n°1199690
jesus_chri​st
votre nouveau dieu
Posté le 14-09-2005 à 20:54:22  profilanswer
 

taz : oui c'est du c mais comme il était partir sur un sprintf...
et il est où le bug, à part les possible problème de output (trop petit ou output[0] != 0).


Message édité par jesus_christ le 14-09-2005 à 21:18:49

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Probleme de conversion en hexa.

 

Sujets relatifs
Problème de marge avec des imagesproblème avec le jxl.jar
Problème OSQL & ACCENTvariance IE et mozilla firefox probleme de %
Problème pour déclaration des règles formulaireProbleme avec copy()
[ASP/.net] probleme de migration ASP==> ASP.netprobleme Formulaire Access en plein écran
[BCB6] problème de conversion de couleur hexaproblème conversion Chaine->hexa
Plus de sujets relatifs à : Probleme de conversion en hexa.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR