Concaténation et Conversion

Résolu
beebopcmoi Messages postés 6 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 23 juillet 2009 - 23 juil. 2009 à 14:10
beebopcmoi Messages postés 6 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 23 juillet 2009 - 23 juil. 2009 à 17:17
Bonjour a tous enfin a ceux qui me liront :p

Je suis un newbie dans le monde du C, et je galère un peu sur un problème qui je pense est tout simple pour les initiés...

Pour simplifier le problème :
J'ai 3 variables d'entrée:
string name
byte age
dword attribut

j'ai une variable de sortie
string chaine_complexe

Je voudrais que ma sortie soit la valeur hexa de chaque entrée séparée par un ":", et chaque entrée séparée par un tiret, par exemple pour les entrées (beebop,3,249), je voudrais obtenir quelque chose du genre "58:61:41:58:69-A9"... Est ce que c'est faisable? d'une manière simple je veux dire

Si vous avez un petit instant pour m'aider dans ma recherche, je vous en serais très reconnaissant!!!

3 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
23 juil. 2009 à 16:03
Salut,

Je crois que ce truc est l'un des codes les plus moches que j'ai jamais écrit... Obscure au possible. Nan mais sérieux y en a qui codent comme ça ? Et qui est le qui a inventé le C++ ?

Fin bon, avec ça tu devrais t'en sortir. Toute l'aide est ici.

C'est du pur C++ sauf que j'ai inclus windows.h pour avoir le BYTE et DWORD...

#include <windows.h>
#include 
#include <fstream>
#include <sstream>

using namespace std;

string do_something_stupid(string name, BYTE age, DWORD attribut)
{
  bool first = true;
  ostringstream os;

  for (unsigned int i = 0; i < name.length(); i++)
  {
    if (first)
      first = false;
    else
      os << ":";
    os << uppercase << hex << (unsigned int)name;
  }
  os << "-";
  os << uppercase << hex << (unsigned int)age;
  os << "-";
  os << uppercase << hex << attribut;
  return os.str();
} 


int main()
{
  string beebop("beebop");

  cout << do_something_stupid(beebop, 12, 22) << endl;

  return 0;
}
3
beebopcmoi Messages postés 6 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 23 juillet 2009
23 juil. 2009 à 14:15
edit : m'a gouré, j'aurais du poster en C++ ... désolé, je ne sais pas si ca prete a conséquence sur le bout de code en question, ou si un admin va pouvoir déplacer le post ...)
0
beebopcmoi Messages postés 6 Date d'inscription vendredi 3 novembre 2006 Statut Membre Dernière intervention 23 juillet 2009
23 juil. 2009 à 17:17
"Je crois que ce truc est l'un des codes les plus moches que j'ai jamais écrit"


...

tu devrais voir les miens... déjà je peine avec le VB, la que je dois adapter un plugin en C pour un projet, je rame je rame je rame

c'est peut-être pas joli joli, mais ça a le mérite de m'expliquer certaines syntaxes et de me faciliter la vie grandement !!

Merci beaucoup pour ton aide, je vais essayer ça dans la soirée
0
Rejoignez-nous