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