Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
735 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Petit probleme :/

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Petit probleme :/

n°705344
ombreee
Posté le 21-04-2004 à 18:29:25  profilanswer
 

L'ordi apres la recompilation m'indique une erreur avant <!> ???  
 

Code :
  1. //declaration de variables
  2.    //declaration de tableau de caractere noms
  3.    char nom[10][20] ;
  4.    //declaration du pointeur de tableau
  5.    char *pnom ;
  6.    //declaration de nombre de defilement
  7.    int a=0,b=0,c=0 ;
  8.    //test de boucle avec saisie
  9.    while (nom ! strcmp(nom,"fin" ))


Message édité par ombreee le 21-04-2004 à 18:31:52
mood
Publicité
Posté le 21-04-2004 à 18:29:25  profilanswer
 

n°705347
darkoli
Le Petit Dinosaure Bleu
Posté le 21-04-2004 à 18:31:38  profilanswer
 

ombreee a écrit :

L'ordi apres la recompilation m'indique une erreur avant <!> ???  
 
[cpp]
   //declaration de variables
 
   //declaration de tableau de caractere noms
   char nom[10][20] ;
   //declaration du pointeur de tableau
   char *pnom ;
   //declaration de nombre de defilement
   int a=0,b=0,c=0 ;
 
   //test de boucle avec saisie
 
   while (nom ! strcmp(nom,"fin" ))
[fixed]


while (strcmp(nom,"fin" ) != 0) :D

n°705351
ombreee
Posté le 21-04-2004 à 18:36:15  profilanswer
 

darkoli a écrit :

while (strcmp(nom,"fin" ) != 0) :D


 
no  c'est pas ca  :/  
 

n°705356
Taz
bisounours-codeur
Posté le 21-04-2004 à 18:39:12  profilanswer
 

ombreee a écrit :

no  c'est pas ca  :/  
 

si c'est ça

n°705362
gilou
Modérateur
Modzilla
Posté le 21-04-2004 à 18:44:08  profilanswer
 

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+,

n°705387
darkoli
Le Petit Dinosaure Bleu
Posté le 21-04-2004 à 19:31:13  profilanswer
 

gilou a écrit :

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+,

Oui mais ce n'est qu'un warning. :D

lapin.c: Dans la fonction « main »:
lapin.c:17: attention : passage de l'argument n°1 de « strcmp » d'un type pointeur incompatible
lap.c:19: attention : passage de l'argument n°1 de « strcmp » d'un type pointeur incompatible

En revanche le ! génère bien une erreur.

lap.c: Dans la fonction « main »:
lap.c:17: error: erreur d'analyse syntaxique before '!' token
lap.c: Hors de toute fonction :
lap.c:21: error: erreur d'analyse syntaxique before numeric constant
lap.c:21: attention : data definition has no type or storage class

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  ¿ &#131;  @ 1 &#130;  &#142; ÿ w  ¬ ? 
 ô û ÿ ¿ ? o  @     p z  @
     ô û ÿ ¿     ? ö  @ | 
     &#142; ÿ w  p ü ÿ ¿ X n  @ Ä ü ÿ ¿
 $ ü ÿ ¿ Ð ²  @ ? w  @ /      ^        @
 · ý ÿ ¿ Î å @ 0 ö  @   ö  @ $ ü ÿ ¿
  \  @ 0 ö  @ Ì ü ÿ ¿ D ü ÿ ¿ Ï \  @
   l  @ 5    X n  @ &#128; ü ÿ ¿  º  @
 à &#132;  ì &#150;  X ü ÿ ¿ Ñ &#130;  Ä ü ÿ ¿
 Ì ü ÿ ¿ x ü ÿ ¿ û &#132;  0 ö  @ @ &#133; 

Finalement c'est pas mal d'initialiser ces données. :D


Message édité par darkoli le 21-04-2004 à 19:48:21
n°705507
gilou
Modérateur
Modzilla
Posté le 21-04-2004 à 23:08:14  profilanswer
 

> 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+,


Message édité par gilou le 21-04-2004 à 23:11:03
n°723371
prog1001
Posté le 12-05-2004 à 15:26:08  profilanswer
 

il faut taper:
while (nom != strcmp(nom,"fin" ))

n°723378
prog1001
Posté le 12-05-2004 à 15:27:40  profilanswer
 

strcomp n'est pas une variable a deux etats, tu peu pas utiliser not ou ! mais different de !=

n°723399
gilou
Modérateur
Modzilla
Posté le 12-05-2004 à 15:35:35  profilanswer
 

prog1001 a écrit :

il faut taper:
while (nom != strcmp(nom,"fin" ))

non! tu ne compares pas un pointeur avec un entier, ca n'a pas de sens.
A+,

mood
Publicité
Posté le 12-05-2004 à 15:35:35  profilanswer
 

n°723411
Taz
bisounours-codeur
Posté le 12-05-2004 à 15:39:25  profilanswer
 

non et non !

n°724282
KenShInouU
Aku Zoku Zan
Posté le 13-05-2004 à 10:17:59  profilanswer
 

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 :D

n°724405
gilou
Modérateur
Modzilla
Posté le 13-05-2004 à 11:10:53  profilanswer
 

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+,

n°724544
prog1001
Posté le 13-05-2004 à 12:18:58  profilanswer
 

Citation :


non! tu ne compares pas un pointeur avec un entier, ca n'a pas de sens.


 
Désolé j'avais pas fait gaffe à ca.
Ta raison et pourquoi y declare pas :
 
char *nom[20];
 
 :bounce:

n°724563
Taz
bisounours-codeur
Posté le 13-05-2004 à 12:37:44  profilanswer
 

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é :D

n°724604
prog1001
Posté le 13-05-2004 à 13:11:53  profilanswer
 

:sol:  
 
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é.
 
 :bounce:


Message édité par prog1001 le 13-05-2004 à 13:14:06
n°724609
Taz
bisounours-codeur
Posté le 13-05-2004 à 13:19:12  profilanswer
 

Nombre de messages postés :    40  
 
ça va être dure la transition, on est déjà trop habitué

n°724634
prog1001
Posté le 13-05-2004 à 13:45:20  profilanswer
 

ombreee a écrit :


   while (nom ! strcmp(nom,"fin" ))


 
ca serai plutot while (! strcmp(nom,"fin" )),  
comment tu veux que le compilateur comprenne.
 
Tu veux faire quoi exactement.


Message édité par prog1001 le 13-05-2004 à 13:54:01
n°724666
KenShInouU
Aku Zoku Zan
Posté le 13-05-2004 à 14:02:10  profilanswer
 

Taz a écrit :

Nombre de messages postés :    40  
 
ça va être dure la transition, on est déjà trop habitué


 
 :lol:  :lol:  :lol:

n°724854
prog1001
Posté le 13-05-2004 à 15:57:18  profilanswer
 

arreter de vous foutre de moi
40 messages c'est rien


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Petit probleme :/

 

Sujets relatifs
petit probleme impulsionnelle SVP !Petit problème de vérification d'inégalité !!!
petit probleme debutantPetit probleme de div :/
Petit problème étrange sur lecture de fichierJe réalise un petit jeu et j'ai un problème de focus avec l'applet
Petit problème !!!petit probleme epineux d'authentification automatique
Petit probleme PHP/HTMLpetit problème avec mon forum phpbb
Plus de sujets relatifs à : Petit probleme :/


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR