Je sais que c'est une simple question. Mais je veux lancer une valeur Enum non rouge, bleu mais 0, 1, 2 etc à la chaîne. Je veux voir 0, 1, 2 comme chaîne. J'utilise C ++ 14 compilateur, toute réponse serait bonne. inAUtre de mots que j'aime jeter 0, 1, 2, comme des valeurs énumées à la chaîne. pour concaténer avec d'autres chaînes p> p>
3 Réponses :
Une valeur d'une plainte Enum n'est qu'une int code>, de sorte que comme indiqué dans les commentaires, il est le même à créer un std :: string code> de int code>
à votre Enum code> en tant que spécificateur de couleur et utilisez son attribut comme nom, vous devez utiliser une structure de données différente pouvant stocker le numéro de couleur spécifié et son nom. Pour ce problème, vous pouvez utiliser mapper code> pour stocker le numéro de couleur et son nom comme suit
Vous pouvez suivre cette URL pour comprendre plus sur la carte
URL: https://fr.cppreference.com/w/cpp/container/ Carte int main()
{
enum Color
{
red = 0,
blue
};
std::map<int, std::string> map;
map[0] = "red";
map[1] = "blue";
map[2] = "orange";
Color color = Color::blue;
printf("%s\n", map[color].c_str());
//or
cout << map[color] << endl;
return 0;
}
J'utilise également une fonction comme Printf pour STD: COUT pourrait ne pas être la réponse ici. Merci de votre aide. J'ai eu ma réponse des commentaires.
Non, je veux imprimer 0, 1, 2, 3, etc pas i> la chaîne comme rouge rouge. Ma question tellement plus simple.
Voulez-vous
std :: to_string (static_cast (couleur)) code>? C'est le seul moyen? Dois-je utiliser to_string? @Artyer
@ Fericozcan Note Note: Utilisez STD :: Cout au lieu de Printf
Que voulez-vous de plus? Avec Printf, vous devriez faire
std :: printf ("% d", statique_cast (couleur)) code>. Avec std :: COUT CODE>, vous n'avez même pas besoin de la distribution (std :: cout << couleur code> fonctionne bien)Je demanderais pourquoi tu veux le faire?
Je sais que je peux le faire avec STD :: Cout. Je veux le jeter à la chaîne. Je pensais peut-être qu'une fonction le jette directement à la chaîne sans extra int.
Aucune raison d'utiliser Fprintf, c'est C ++, il suffit d'aller pour STD :: COUT << COULEUR;
En d'autres termes, j'aime jeter 0, 1, 2, comme des valeurs énumées à la chaîne. pour concaténer avec d'autres cordes.
@Mericozcan Si vous avez besoin d'utiliser comme chaîne, vous devez construire une chaîne depuis un ENum est un int. C'est pourquoi vous devez vous lancer à STD :: String si vous le souhaitez.
@Mericozcan Votre problème est exactement la même chose de "Je veux écrire une chaîne contenant" 1 "à l'intérieur" puis
J'ai changé la question alors @moia
@Mericozcan et la solution sont toujours que de Artyer: D
Donc, pas de coulée directe, je suppose? @Moia