IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Erreurs de syntaxe


Sujet :

C

  1. #1
    Membre confirmé Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Par défaut Erreurs de syntaxe
    Bonjour,

    voici le morceau de code (parmis tant d'autres) qui me pose problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char villes[NB_VILLES][LONGNOM];	//tableau de stockage des villes
    ou alors ici aussi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void ville(char villes[NB_VILLES][LONGNOM],struct chemin,int nombre_de_villes) { ....

    Voila, en réalité des erreurs s'affichent, mais je ne comprend pas ...

    Par exemple avec VS, pour la première déclaration:

    error C2143: erreur de syntaxe*: absence de ']' avant '='
    Avant "=" ????????????

    Avec DEVC++ l'erreur donne ça:

    expected primary-expression before '=' token
    Et ça partout dans mon code, a plusieurs endroits...

    Quelqu'un peu m'éclairer ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 770
    Par défaut
    Bonjour
    Comment sont définis:
    • NB_VILLES
    • LONGNOM

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Par défaut
    Bonjour!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    #define NB_VILLES = 20	
    #define LONGNOM = 50
    Voila !

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 770
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 770
    Par défaut
    Nous avons donc l'origine de nos '=":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #define NB_VILLES = 20	
    #define LONGNOM = 50
    Les supprimer devrait corriger cette erreur.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre émérite
    Inscrit en
    Juillet 2005
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par défaut
    Pas de signe egal pour les defines

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define NB_VILLES 20
    #define LONGNOM 50
    <edit>Raté </edit>

  6. #6
    Membre confirmé Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Par défaut
    GENIAL !!


    Merci, ça marche, plus de problème !!
    Je me demandais aussi.....


    Peut etre juste un dernier problème qui se pose avec cette partie du code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void ville(char villes[NB_VILLES][LONGNOM],struct chemin,int nombre_de_villes) {....
    Une nouvelle erreur apparait:

    error C2055: liste de paramètres formels attendue, non une liste de types
    ?

    Ce n'est pas une liste de types pourtant? Ou que je me trompe (encore?...)

  7. #7
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void ville(char villes[NB_VILLES][LONGNOM],struct chemin,int nombre_de_villes)
    struct chemin est un type sans paramètre .

  8. #8
    Membre confirmé Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Par défaut
    Le mieux est peut etre de mettre mon code en entier......

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    #include<stdio.h>
    #include<string.h>
     
    #define NB_VILLES 20
    #define NB_CHEMINS 5		//nombre de chemins maximum par villes
    #define LONGNOM 50		//longueur maximale d'un nom de ville
     
    //*********************
    //DECLARATIONS DIVERSES
    //*********************
     
    char villes[NB_VILLES][LONGNOM];	//tableau de stockage des villes
    char ville_depart;
    int i;
    char nom_de_ville;	//nom de ville courant choisi par l'utilisateur
    int nombre_de_ville;	//le numéro de la ville choisie
     
    //tableau de stockage des chemins
    struct chemin{	
    char ville_arrivee;
    int distance;
    };	
     
    //**************
    //FONCTION VILLE
    //**************
     
    void ville(char villes[NB_VILLES][LONGNOM],struct chemin,int nombre_de_villes) {
     
    int x;	//Pour le nombre de villes que l'utilisateur souhaite entrer
     
    printf ("Combien de villes désirez-vous entrer ? ");
    scanf ("%d",&x);
     
    for (i=0; i<x; i++) {
    printf ("Entrez le nom de la ville svp: ");
    scanf ("%s",&nom_de_ville);
     
    if ( villes==nom_de_ville) {
    printf ("Erreur, la ville existe déjà");
    }
    }
    //*****************
    //FONCTION DISTANCE
    //*****************
     
    void distance (char villes[NB_VILLES][LONGNOM],struct chemin,int nombre_de_ville) {		
    printf ("Quelle est la ville de départ? ");
    scanf ("%s",&ville_depart);
    printf ("Quelle est la ville d'arrivé? ");
    scanf ("%s", &chemin.ville_arrivee);
    printf ("Quelle est la distance entre ces 2 villes? ");
    scanf ("%d",&chemin.distance);
    }
     
    //*****************
    //FONCTION PARCOURS
    //*****************
     
    void parcours (char villes[NB_VILLES][LONGNOM],struct chemin,int nombre_de_ville) {		
    printf ("Voici les villes disponibles: ");
    printf ("%s", villes[]);
     
    printf ("Veuillez saisir le numéro de la ville de départ voulue");
    scanf("%d",&nombre_de_ville);
    }

  9. #9
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par mouchT8 Voir le message
    Le mieux est peut etre de mettre mon code en entier......
    Ca ne change rien a l'erreur qui est celle indique par Diogene. Il faut donner un nom au paramètre dont le type est struct chemin ou, s'il est inutile, supprimer ce paramètre.

    En outre:

    * Pourquoi utilises-tu toutes ces variables globales ? Surtout que certaines ont le même nom que certains paramètres.
    * char nom_de_ville; ne permet pas de stocker une chaîne de caractère.

  10. #10
    Membre confirmé Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Par défaut
    BOn...
    Alors, tout d'abord merci, je n'avais pas vu pour "nom_de_ville" j'ai changé en "nom_de_ville[LONGNOM]" !
    Ca sera forcément plus efficace !!

    Ensuite,
    j'ai défini comme suit, ma structure chemin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    struct chemin{	
    char ville_arrivee;
    int distance;
    }CHEMIN;
    c'est bien ainsi que l'on fait je crois...

  11. #11
    Membre confirmé Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Par défaut
    J'ai comme une illumination...
    Ne pensez vous pas que:

    villes[NB_VILLES][LONGNOM]
    s'écrirait plutot:

    villes[LONGNOM][NB_VILLES]
    ???


  12. #12
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Je crois surtout qu'il faut commencer par donner un nom à ce paramètre ou le supprimer s'il ne sert à rien (ce qui semble être le cas pour l'instant)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void ville(char villes[NB_VILLES][LONGNOM],struct chemin chemin, int nombre_de_villes)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void ville(char villes[NB_VILLES][LONGNOM], int nombre_de_villes)
    idem pour distance(......), parcours (.......)

    Par ailleurs, if (villes==nom_de_ville)... dans ville (......) est absurde. Pour comparer des chaînes de caractères == ne suffit pas : cf strcmp

    et d'autres choses qu'on verra plus tard

  13. #13
    Membre confirmé Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Par défaut
    bien sur que "chemin" sert a quelque chose.
    Ici par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    printf ("Quelle est la ville d'arrivé? ");
    scanf ("%s", &chemin.ville_arrivee);
    printf ("Quelle est la distance entre ces 2 villes? ");
    scanf ("%d",&chemin.longueur);
    Pour le moment on va dire que ce petit bout de programme est la "préparation" à son grand frère, le grand programme bien ch****

    Merci pour l'aide !!!
    Ca marche, enfin presque.
    VS m'indique que:
    error C2143: erreur de syntaxe*: absence de ';' avant 'type'
    ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void distance (char villes[LONGNOM][NB_VILLES],struct chemin chemin,int nombre_de_ville) {
    Alors tout est comme pour la fonction "ville" ou la "parcours" mais ya un bug...
    Apparement ma fonction distance n'est pas "définie":

    warning C4013: 'distance' non défini(e)*; extern retournant int pris par défaut

  14. #14
    Membre confirmé Avatar de mouchT8
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 141
    Par défaut
    PROBLEME RESOLU PAR MOI MEME !!!

    Il me manquait une " } "

    ...............

    Merci a tous pour votre aide précieuse !!!


  15. #15
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par mouchT8 Voir le message
    J'ai comme une illumination...
    Ne pensez vous pas que:

    villes[NB_VILLES][LONGNOM]
    s'écrirait plutot:

    villes[LONGNOM][NB_VILLES]
    ???

    Pourquoi ?

  16. #16
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par défaut
    Sûrement pas.
    Je te saurais gré de ne pas apporter plus de confusion dans son esprit, car il avait fait comme toi avant...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Directives] Page blanche quand erreur de syntaxe
    Par syl2095 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 12
    Dernier message: 17/02/2006, 15h15
  2. [sql] erreur de syntaxe
    Par cmoa59 dans le forum JDBC
    Réponses: 14
    Dernier message: 03/05/2005, 11h41
  3. erreur de syntaxe en C++
    Par sergepmessa dans le forum C++
    Réponses: 6
    Dernier message: 11/03/2005, 18h15
  4. PHP SQL =>erreur de syntaxe (operateur absent)
    Par snipes dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 14h09
  5. erreur de syntaxe javascript dans ma page
    Par Oluha dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 01/02/2005, 14h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo