Switch pour de la vraie

Signaler
Messages postés
88
Date d'inscription
mercredi 1 juin 2005
Statut
Membre
Dernière intervention
26 juillet 2007
-
Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
-
Bonjour, j'ailmerais pouvoir utiliser switch avec des types autres que simple (char,double,long ...) mais switch ne prend que ces types la ...
Il doit qd même bien  avoir un moyen simple de faire un switch sur un type std::string ou un truc dans ce ganre là quand même ... ??
(je cherche surtout std::string mais plus generalement sur un User Defined Type)

merci :)

wis : in tartiflette I trust (like the others)

6 réponses

Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Un switch ne prend que des intégrales.

_______________________________________
Venez débattre de sujets touchant à la programmation ici
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
Intégrales ? le switch ne tolère que des types énumérés ou scalaires.
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
Par intégrale je veux dire, int, long, char. Des entiers quoi. Mettre un double dans un switch ce résulte par une erreure:
error C2050: switch expression not integral

______________________________
Venez débattre de sujets touchant à la programmation ici
Messages postés
2023
Date d'inscription
mardi 24 septembre 2002
Statut
Membre
Dernière intervention
28 juillet 2008
5
ah oke je connaissais pas le nom, oue d'ailleurs scalaire c'est faux :)
Messages postés
475
Date d'inscription
dimanche 3 octobre 2004
Statut
Membre
Dernière intervention
11 août 2006
3
Oui un type intégral mais ca peut aussi etre un type énumération.
Messages postés
257
Date d'inscription
dimanche 22 août 2004
Statut
Membre
Dernière intervention
29 septembre 2010
2
un type integral ? tu voulais dire integer (entier), parce qu'une integrale c'est une somme plus passage à la limite.

Pour ce qui est de ton problème, switch ne prend pas les string. Tu peut cepdant faire avec des if

if (!strcmp (chaine1, chaine2)){/*mes variables sont identiques*/)
if (!strcmp (chaine1, chaine3)){/*mes variables sont identiques*/)
if (!strcmp (chaine1, chaine4)){/*mes variables sont identiques*/)
if (!strcmp (chaine1, chaine5)){/*mes variables sont identiques*/)
instruction;/*corespont à default*/