Enum : Comment renvoyer la chaine de caractere???

thmatew Messages postés 68 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 janvier 2010 - 9 mars 2007 à 09:55
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 - 10 mars 2007 à 02:26
salut a tous,

J'ai un petit soucis : coment faire pour retourner une chaine de caractere avec un enum?
exemple:

typedef enum{Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi,Dimanche}Jours;

j'aimerai pouvoir retourner Lundi si je lui dit Jours j=0;
et également dans l'autre sens si je lui di Jours j="Lundi" (et non Lundi)qu'il me retourne 0

savez-vous comment procéder???

Merci pour vos réponses.

PS:dans le programme réel c'est un enum de 45 éléments, je ne peu pas utiliser de switch car l'enum risque de varier avec le temps et dans le cahier des charge il n'y aura pas de recompilation de programme.

11 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
9 mars 2007 à 10:42
Salut,


On peut considérés que les éléments d'un enum sont des entiers. Lundi,
Mardi... tout ça ce sont des identifiants, comme des indentifiants de
variable. Ce ne sont pas des chaînes, et les noms d'identifiants
disparraissent à la compilation.


Donc utilise peut être plutôt un tableau de chaînes.
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
9 mars 2007 à 10:45
je ne peu pas utiliser de switch car l'enum risque de varier avec le
temps et dans le cahier des charge il n'y aura pas de recompilation de
programme. => si tu modifier le enum tu va devoir aussi recompiler a chaque fois
0
thmatew Messages postés 68 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 janvier 2010
9 mars 2007 à 10:53
non pcq l'enum est présent dans un dll
de maniere a ne recompiler que la dll et mon programme utilise la dll

si je comprend bien ce n'est pas possible en C/C++ de convertir les valeur d'enum en char*

en fait c 'un peu plu compliquer car la Dll est en C/C++ (elle est creer a la suite d'un programe generer sur une carte electronique) et le programme qui l'utilise est en C#.

je ne peu donc pas toucher a cet enum.

je sais qu'en C# on peut convertir la valeur en chaine de caractere mais comment retourner un enum complet au programme???
0
bonjour__ Messages postés 25 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 27 septembre 2008
9 mars 2007 à 15:20
vous pouver travailler avec les operateurs !!!!!!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thmatew Messages postés 68 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 janvier 2010
9 mars 2007 à 15:43
quels opérateurs?
0
bonjour__ Messages postés 25 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 27 septembre 2008
9 mars 2007 à 16:15
par exemple:

Jours &operator=(Jours &J,char *S)
{
      if(strcmp(s,"Dimanche")==0)
            J=Dimanche;
      else if(strcmp(s,"Lundi")==0)
            J=Lundi;
      else .

      else
            J=Samedi;

return J;
}
0
thmatew Messages postés 68 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 janvier 2010
9 mars 2007 à 16:17
oui j'ai penser a faire cela
mais ceci est valable tant que l'enum ne change pas.
0
bonjour__ Messages postés 25 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 27 septembre 2008
9 mars 2007 à 16:29
il faut essayer pour le savoir
0
thmatew Messages postés 68 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 19 janvier 2010
9 mars 2007 à 16:32
mais ceci marche tres bien.
mais il faudra a chaque reprise de l'enum penser a modifier cette partie de code mais merci qd même de vous interresser a mon probleme.
0
bonjour__ Messages postés 25 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 27 septembre 2008
9 mars 2007 à 16:37
de rien
0
luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
10 mars 2007 à 02:26
En encapsulant un enum dans une classe et avec un coup de macro par dessus, tu dois pouvoir faire ce que tu souhaites.
0
Rejoignez-nous