GESTION DE "CHAIN" (IKARUGA - TREASURE - DREAMCAST) [DEV C++ 4.0]
StanOfSky
Messages postés43Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention 7 octobre 2006
-
26 mai 2004 à 22:08
StanOfSky
Messages postés43Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention 7 octobre 2006
-
26 mai 2004 à 22:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
StanOfSky
Messages postés43Date d'inscriptionmardi 30 mars 2004StatutMembreDernière intervention 7 octobre 2006 26 mai 2004 à 22:08
*couleur3 equivalent à couleur3[0]
tu n'as pas le droit de tester (*couleur1==*couleur2) tout du moins ca ne fera pas ce que tu esperes...
couleur1 et couleur2 sont des char* (des pointeurs sur sur une chaine de caractere donc l'espace allouée est [10] donc 10 caracteres, caracteres null compris)
donc en fait quand tu fais (*couleur1==*couleur2) tu testes si la premiere lettre de couleur1 est egale a la premiere lettre de couleur2.
si tu veux tester si le mot dans couleur1 est le meme que celui de couleur2 il faut faire (strcmp(couleur1, couleur2) == 0)
ou alors si tu fais du c++ tu peux utiliser la class string qui a des operateurs ==, !=, = etc.. intégrés (il faut faire #include <string>, attention c une classe qui appartient au namespace std, donc un petit std:: devant chaque fonction)
de meme couleur2=test; ne peu pas marcher (t'as essayé de compiler??) il faut faire strcpy(couleur2, test) ou utiliser la classe string
pour un while comme ca, vau mieux définir un booléen qui dit si on doit continuer ou pas genre:
bool OK=true;
while(OK) {et quand tu veux arreter tu fais OK=false;}
//cas ou rang<1 et rang>4 ou rang est du type float !!!
impossible vu que rang est un int...
default c au cas ou ya un bug...
bon ba c bourré d'erreur mais c normal quand on débute
sinon j'ai pas trop compris l'interet du case mais comme j'ai pas tro essayé de comprendre ce que c sensé faire ;)
26 mai 2004 à 22:08
tu n'as pas le droit de tester (*couleur1==*couleur2) tout du moins ca ne fera pas ce que tu esperes...
couleur1 et couleur2 sont des char* (des pointeurs sur sur une chaine de caractere donc l'espace allouée est [10] donc 10 caracteres, caracteres null compris)
donc en fait quand tu fais (*couleur1==*couleur2) tu testes si la premiere lettre de couleur1 est egale a la premiere lettre de couleur2.
si tu veux tester si le mot dans couleur1 est le meme que celui de couleur2 il faut faire (strcmp(couleur1, couleur2) == 0)
ou alors si tu fais du c++ tu peux utiliser la class string qui a des operateurs ==, !=, = etc.. intégrés (il faut faire #include <string>, attention c une classe qui appartient au namespace std, donc un petit std:: devant chaque fonction)
de meme couleur2=test; ne peu pas marcher (t'as essayé de compiler??) il faut faire strcpy(couleur2, test) ou utiliser la classe string
pour un while comme ca, vau mieux définir un booléen qui dit si on doit continuer ou pas genre:
bool OK=true;
while(OK) {et quand tu veux arreter tu fais OK=false;}
//cas ou rang<1 et rang>4 ou rang est du type float !!!
impossible vu que rang est un int...
default c au cas ou ya un bug...
bon ba c bourré d'erreur mais c normal quand on débute
sinon j'ai pas trop compris l'interet du case mais comme j'ai pas tro essayé de comprendre ce que c sensé faire ;)