0
votes

Cast Enum Valeurs à la chaîne

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. XXX

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


14 commentaires

Non, je veux imprimer 0, 1, 2, 3, etc pas la chaîne comme rouge rouge. Ma question tellement plus simple.


Voulez-vous std :: to_string (static_cast (couleur)) ?


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)) . Avec std :: COUT , vous n'avez même pas besoin de la distribution ( std :: cout << couleur 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


3 Réponses :


0
votes

Une valeur d'une plainte Enum n'est qu'une int , de sorte que comme indiqué dans les commentaires, il est le même à créer un std :: string de int xxx


0 commentaires

0
votes

à 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;
}


0 commentaires

0
votes

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. xxx


0 commentaires