[C] Conversion type énuméré en string pour affichage :

Conversion type énuméré en string pour affichage : [C] - C - Programmation

Marsh Posté le 07-10-2012 à 22:40:09    

Bonsoir !
 
Je travaille actuellement sur un projet en C et j'ai une petite question pour pour voir afficher un type énuméré. Rapidement ce que j'utilise, pourquoi et ce que je veux en faire :
 

Code :
  1. typedef enum {VAL_COMMENTAIRE,VAL_SYMBOLE,VAL_DEUX_PTS,VAL_DIRECTIVE,VAL_DECIMAL,VAL_REGISTRE,VAL_VIRGULE,VAL_HEXA,VAL_OCTA,VAL_PAR_OUV,VAL_PAR_FERM,VAL_PLUS} TYPE ;
  2. typedef struct
  3. {
  4.  char* lexeme ;
  5.  TYPE Type ;
  6.  int ligne ;
  7. } MOT ;


 
Donc voila, j'énumere mes TYPE, j'ai cru comprendre qu'en réalité, chaque type était associé à un entier, dont VAL_COMMENTAIRE = 0, VAL_SYMBOLE =1 ...
Mon problème c'est que lorsque je fait un printf de m.Type (m étant un MOT) un peu plus loin dans mon programme, il me renvoi l'entier, et moi je voudrai afficher la string ! COmment faire ?!
 
J'ai instinctivement tenté ça mais ca ne lui plait pas trop trop :  

Code :
  1. char* traduit_types(int T) {
  2. char* types_string[] = { "VAL_COMMENTAIRE",
  3.        "VAL_SYMBOLE",
  4.        "VAL_DEUX_PTS",
  5.        "VAL_DIRECTIVE",
  6.        "VAL_DECIMAL",
  7.        "VAL_REGISTRE",
  8.        "VAL_VIRGULE",
  9.        "VAL_HEXA",
  10.        "VAL_OCTA",
  11.        "VAL_PAR_OUV",
  12.        "VAL_PAR_FERM",
  13.        "VAL_PLUS"
  14.                           };
  15.                          
  16.     if (T>-1 && T<12) {
  17.         return types_string[T]; }
  18.     return "erreur";
  19.    
  20. }
  21. void affiche ( MOT* m){
  22. char* type_aff = NULL
  23. type_aff= traduit_types(m->Type);
  24. printf("\n Lexeme :%s Type :%d Numero de ligne :%d  \n", m->lexeme,type_aff,m->ligne); }


 
SI vous avez une petite idée pour me débloquer ce serait super cool !  
 
Merci à tous.
 

Reply

Marsh Posté le 07-10-2012 à 22:40:09   

Reply

Marsh Posté le 08-10-2012 à 11:13:53    

"J'ai instinctivement tenté ça mais ca ne lui plait pas trop trop :"
A qui ça ne plait pas trop et il a dit quoi?
Bref sois plus précis sur ce qui ne vas pas...


Message édité par breizhbugs le 08-10-2012 à 11:14:22

---------------
Seul Google le sait...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed