condition string qui marche pas ! [C] - C++ - Programmation
Marsh Posté le 03-03-2003 à 20:37:30
essaie ça :
if (SDL_GetKeyName(event.key.keysym.sym)=="left") printf("Lfgdg" );
Marsh Posté le 03-03-2003 à 20:41:12
je connais rien à SDL mais le == je le sens mal d'habitude
Marsh Posté le 03-03-2003 à 20:45:03
++Taz a écrit : je connais rien à SDL mais le == je le sens mal d'habitude |
ben SDL_GetKeyName renvoie un char*
Marsh Posté le 03-03-2003 à 20:50:40
if (SDL_GetKeyName(event.key.keysym.sym)=="left" ) printf("Lfgdg" );
ca marche pas
Marsh Posté le 03-03-2003 à 20:51:54
Harkonnen a écrit : |
vous etes des blaireaux ou vous avez jamais fait de C?
Marsh Posté le 03-03-2003 à 20:53:34
++Taz a écrit : vous etes des blaireaux ou vous avez jamais fait de C? |
Je sais que c'est mal, mais je plussoie
Marsh Posté le 03-03-2003 à 20:57:25
kadreg a écrit : |
pauvres blaireaux, désolé, c'est des braves bêtes
Marsh Posté le 03-03-2003 à 21:01:07
si je fais ca :
if (SDL_GetKeyName(event.key.keysym.sym) = "left" ) printf("Lfgdg" );
g une erreur de compilation
main.c:60: invalid lvalue in assignment
Marsh Posté le 03-03-2003 à 21:01:12
oui bon ça va hein !
strcmp évidemment... à force d'utiliser des langages objets avec des opérateurs surchargés à tout bout de champ, on en oublie les principes élémentaires !
inutile d'être si condescendant... quand tu as posté un topic sur Java l'autre jour, tu ne t'es pas fait incendier par les pros que je sache !
Marsh Posté le 03-03-2003 à 21:02:06
CtHuLhU50 a écrit : si je fais ca : |
c'est faux !! n'en rajoute pas !!
if (strcmp(SDL_GetKeyName(event.key.keysym.sym), "Left" ))
est juste !
edit: avec les parenthèses, c mieux
Marsh Posté le 03-03-2003 à 21:03:46
CtHuLhU50 a écrit : si je fais ca : |
t'es pas sorti de l'auberge. fais la différence entre = (affectation) et == (comparaison des types simples du C)
Marsh Posté le 03-03-2003 à 21:04:24
Harkonnen a écrit : |
faux tous les 2
strcmp renvoie 0 si les 2 chaines sont égales
Marsh Posté le 03-03-2003 à 21:05:20
CtHuLhU50 a écrit : Harkonnen ca marche merci |
ne me remercie pas, mais remercie Taz qui nous a rafraichi la mémoire avec les fonctions du C.
(putains de langages objets...)
Marsh Posté le 03-03-2003 à 21:06:53
++Taz a écrit : faux tous les 2 |
if (!(strcmp(SDL_GetKeyName(event.key.keysym.sym), "Left" )))
putain, j'ai trop perdu le C standard
Marsh Posté le 03-03-2003 à 21:09:06
je ais te critiquer encore: j'aime pas trop les !, je préfère un ==0 explicite, ça evite de faire cette gymnastique périlleuse et non fondée. chacun est libre, mais faudrai pas croire que ! est plus performant que ==0
Marsh Posté le 04-03-2003 à 08:40:59
++Taz a écrit : je ais te critiquer encore: j'aime pas trop les !, je préfère un ==0 explicite, ça evite de faire cette gymnastique périlleuse et non fondée. chacun est libre, mais faudrai pas croire que ! est plus performant que ==0 |
ca depend comment sont surchargés les opérateurs.
(bon ok. c'est du C..)
LeGreg
Marsh Posté le 04-03-2003 à 15:11:39
Citation : |
Et pourqoi pas :
if( event.key.keysym.sym == SDLK_LEFT ) ....
Marsh Posté le 04-03-2003 à 15:36:50
pascal_ a écrit : |
C'est trop rapide, il vaut mieux perdre du temps et comparer des chaines de caractères
Marsh Posté le 04-03-2003 à 18:53:11
++Taz a écrit : en C, y a pas de surcharge |
c'est ce que j'ai dit.
LeGreg
Marsh Posté le 03-03-2003 à 20:30:50
voici mon probleme :
printf("La touche %s a été préssée!\n",SDL_GetKeyName(event.key.keysym.sym));
if (SDL_GetKeyName(event.key.keysym.sym)=='left' printf("Lfgdg" );
c'est du SDL mais ce n'est pa le probleme ! kand je l'exécute é ke j'appuie sir la touche gauche SDL_GetKeyName(event.key.keysym.sym) = "left"
La touche left a été préssée!
mais mon if ne marche pas, mais pk donc ???
merci