[C]condition string qui marche pas !

condition string qui marche pas ! [C] - C++ - Programmation

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

Reply

Marsh Posté le 03-03-2003 à 20:30:50   

Reply

Marsh Posté le 03-03-2003 à 20:34:56    

strcmp(ton_truc, "Left" ) == 0
si truc renvoie "Left"

Reply

Marsh Posté le 03-03-2003 à 20:37:30    

essaie ça :
 
if (SDL_GetKeyName(event.key.keysym.sym)=="left") printf("Lfgdg" );  


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-03-2003 à 20:41:12    

je connais rien à SDL mais le == je le sens mal d'habitude

Reply

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* [:sinclaire]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-03-2003 à 20:50:40    

if (SDL_GetKeyName(event.key.keysym.sym)=="left" ) printf("Lfgdg" );  
ca marche pas

Reply

Marsh Posté le 03-03-2003 à 20:51:54    

Harkonnen a écrit :


ben SDL_GetKeyName renvoie un char* [:sinclaire]

vous etes des blaireaux ou vous avez jamais fait de C?

Reply

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


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
Reply

Marsh Posté le 03-03-2003 à 20:55:15    

++Taz o lieu de nous insulter aide moi !

Reply

Marsh Posté le 03-03-2003 à 20:56:48    

je t'ai déjà répondu  :pfff:

Reply

Marsh Posté le 03-03-2003 à 20:56:48   

Reply

Marsh Posté le 03-03-2003 à 20:57:25    

kadreg a écrit :


 
Je sais que c'est mal, mais je plussoie

pauvres blaireaux, désolé, c'est des braves bêtes  :sweat:

Reply

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

Reply

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 ! :kaola:
 
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 !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-03-2003 à 21:02:06    

CtHuLhU50 a écrit :

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


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


Message édité par Harkonnen le 03-03-2003 à 21:04:21

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-03-2003 à 21:02:54    

j'en rajoute po   :sweat:  
je réponds et on m'ignore

Reply

Marsh Posté le 03-03-2003 à 21:03:46    

CtHuLhU50 a écrit :

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

t'es pas sorti de l'auberge. fais la différence entre = (affectation) et == (comparaison des types simples du C)

Reply

Marsh Posté le 03-03-2003 à 21:03:47    

Harkonnen ca marche merci ;)

Reply

Marsh Posté le 03-03-2003 à 21:04:24    

Harkonnen a écrit :


c'est faux !! n'en rajoute pas !!
 
if strcmp(SDL_GetKeyName(event.key.keysym.sym), "Left" )
est juste !

faux tous les 2
strcmp renvoie 0 si les 2 chaines sont égales

Reply

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


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 03-03-2003 à 21:06:53    

++Taz a écrit :

faux tous les 2
strcmp renvoie 0 si les 2 chaines sont égales


 
if (!(strcmp(SDL_GetKeyName(event.key.keysym.sym), "Left" )))
 
putain, j'ai trop perdu le C standard  :sweat:  


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

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

Reply

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


---------------
voxel terrain render engine | animation mentor
Reply

Marsh Posté le 04-03-2003 à 13:25:44    

en C, y a pas de surcharge

Reply

Marsh Posté le 04-03-2003 à 15:11:39    

Citation :


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" );  

 
 
Et pourqoi pas :  
 
if( event.key.keysym.sym == SDLK_LEFT ) ....

Reply

Marsh Posté le 04-03-2003 à 15:36:50    

pascal_ a écrit :

 
Et pourqoi pas :  
 
if( event.key.keysym.sym == SDLK_LEFT ) ....


C'est trop rapide, il vaut mieux perdre du temps et comparer des chaines de caractères  :ange:


Message édité par dsls le 04-03-2003 à 15:37:08
Reply

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


---------------
voxel terrain render engine | animation mentor
Reply

Marsh Posté le 04-03-2003 à 19:32:03    

roger that

Reply

Marsh Posté le 04-03-2003 à 21:27:43    

mdr. fire in the hole

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed