Petit probleme :/ - C - Programmation
Marsh Posté le 21-04-2004 à 18:31:38
ombreee a écrit : L'ordi apres la recompilation m'indique une erreur avant <!> ??? |
while (strcmp(nom,"fin" ) != 0)
Marsh Posté le 21-04-2004 à 18:36:15
ReplyMarsh Posté le 21-04-2004 à 18:44:08
C'est clair que c'est pas ca:
char nom[10][20];
nom, c'est pas un tableau de chars, mais un tableau de tableaux de chars. c'est donc pas utilisable dans un strcmp.
A+,
Marsh Posté le 21-04-2004 à 19:31:13
gilou a écrit : C'est clair que c'est pas ca: |
Oui mais ce n'est qu'un warning.
lapin.c: Dans la fonction « main »: |
En revanche le ! génère bien une erreur.
lap.c: Dans la fonction « main »: |
Donc en fait il y a deux "erreurs" !
Mais un strcpy(nom, "fin" ); marche mais c'est pas propre.
Voici le tableau que j'obtiens :
f i n ¿ ƒ @ 1 ‚ Ž ÿ w ¬ ? |
Finalement c'est pas mal d'initialiser ces données.
Marsh Posté le 21-04-2004 à 23:08:14
> Oui mais ce n'est qu'un warning.
Pour une erreur bien reelle. Si le compilo generait une erreur pour toutes les erreurs de prog, y'aurait plus beaucoup de programmes buggés.
> En revanche le ! génère bien une erreur.
>>>while (nom ! strcmp(nom,"fin" ))
bien sur, puisqu'il y a un truc en trop (nom) et que c'est while (strcmp(nom,"fin" )) qui devrait y etre
(et non pas while (!strcmp(nom,"fin" )) )
> Mais un strcpy(nom, "fin" ); marche mais c'est pas propre.
Non, ca ne marche pas, ca ne fait que compiler. Si ca marchait, ca ferait pas qque chose que tu n'es pas capable de predire.
A+,
Marsh Posté le 12-05-2004 à 15:27:40
strcomp n'est pas une variable a deux etats, tu peu pas utiliser not ou ! mais different de !=
Marsh Posté le 12-05-2004 à 15:35:35
prog1001 a écrit : il faut taper: |
non! tu ne compares pas un pointeur avec un entier, ca n'a pas de sens.
A+,
Marsh Posté le 13-05-2004 à 10:17:59
strcmp ca renvoie 0 si les chaines sont identiques et -1 ou 1 si c'est différent donc gilou a raison c'est bien while (strcmp(nom,"fin" )) ^^
par contre le strcmp(nom,"fin" ) va pas marcher, nom étant un tableau de tableau de chars...
faudrait mettre strcmp(nom[0],"fin" ) au moins, mais même comme ca ca va bugger car variable po initialisée
Marsh Posté le 13-05-2004 à 11:10:53
Euh oui, merci pour ta correction, j'avais pas fait gaffe a ce que son nom n'etait pas un pointeur sur une chaine dans vette reponse ci (je l'avais dit dans une autre reponse, mais là, je m'etais focalisé sur une autre erreur)
> et -1 ou 1 si c'est différent
Non, c'est positif ou negatif, mais ca vaut pas necessairement 1 (dans certaines implems, il me semble que ca valait le rang du premier caractere qui etait different entre les deux chaines).
A+,
Marsh Posté le 13-05-2004 à 12:18:58
Citation : |
Désolé j'avais pas fait gaffe à ca.
Ta raison et pourquoi y declare pas :
char *nom[20];
Marsh Posté le 13-05-2004 à 12:37:44
peut être ça serait bien de faire une petite classe de string pour les débutants : un truc simple, pas compliqué, facile à utiliser (tout dans un .h peut être) ... enfin je sais pas, je me vois pas demander aux débutants de passer aux g_string sachant comment le code est chiadé
Marsh Posté le 13-05-2004 à 13:11:53
Le truc c'est qui nous a meme pas dis le but de son programme, donc pour l'aider c'est chiant.
Au fait moi je vais passer sous le nom MK prog car la c'est un pseudo empreinté.
Marsh Posté le 13-05-2004 à 13:19:12
Nombre de messages postés : 40
ça va être dure la transition, on est déjà trop habitué
Marsh Posté le 13-05-2004 à 13:45:20
ombreee a écrit : |
ca serai plutot while (! strcmp(nom,"fin" )),
comment tu veux que le compilateur comprenne.
Tu veux faire quoi exactement.
Marsh Posté le 13-05-2004 à 14:02:10
Reply
Marsh Posté le 21-04-2004 à 18:29:25
L'ordi apres la recompilation m'indique une erreur avant <!> ???
Message édité par ombreee le 21-04-2004 à 18:31:52