Duplicate possible:
Existe-t-il un script simple pour convertir une énumération C++ en chaîne?
Je trouve couramment que j'ai besoin de convertir une énumération en chaîne en c ++
Je finis toujours par faire:
enum Enum{ Banana, Orange, Apple } ;
char * getTextForEnum( int enumVal )
{
switch( enumVal )
{
case Enum::Banana:
return "bananas & monkeys";
case Enum::Orange:
return "Round and orange";
case Enum::Apple:
return "Apple" ;
default:
return "Not recognized..";
}
}
Y a-t-il un langage meilleur ou reconnu pour le faire?
enum Enum{ Banana, Orange, Apple } ;
static const char * EnumStrings[] = { "bananas & monkeys", "Round and orange", "Apple" };
const char * getTextForEnum( int enumVal )
{
return EnumStrings[enumVal];
}
Type de table de recherche anonyme plutôt qu'une longue instruction switch:
return (const char *[]) {
"bananas & monkeys",
"Round and orange",
"Apple",
}[enumVal];
Vous pouvez jeter la valeur enum et la chaîne dans une carte STL. Ensuite, vous pourriez l'utiliser comme ça.
return myStringMap[Enum::Apple];