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 :

Erreur syntaxique:syntax error before '.' token


Sujet :

C

  1. #1
    Membre actif
    Inscrit en
    Avril 2011
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Avril 2011
    Messages : 135
    Points : 221
    Points
    221
    Par défaut Erreur syntaxique:syntax error before '.' token
    Bonsoir,
    J'ai rencontré une erreur syntaxique lors de l'écriture d'un petit programme ,l'erreur va vous apparaitre assez normale.

    le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int main()
    {
          struct azerty{
                              char c[10];
                              char val[10];
                      };
    typedef struct azerty T;
    
    T.c="hello"; //l'erreur est au niveau de cette instruction
    puts(T.c);
    return 0;
    }
    error:syntax error before '.' token

    merci d'avance

  2. #2
    Membre actif Avatar de moins1
    Homme Profil pro
    Autre
    Inscrit en
    Février 2013
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Autre
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 85
    Points : 222
    Points
    222
    Par défaut
    À l'initialisation tu peux faire comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    struct qwerty T = {{"Hello"}, {0}};
    Mais une fois initialisé tu dois utiliser une fonction pour assigner une chaîne à T.c. Très probablement strcpy()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    strcpy(T.c, "Hello!");
    Ou encore assigner lettre par lettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    T.c[0] = 'H';
    T.c[1] = 'e';
    ...
    T.c[5] = '!';
    T.c[6] = '\0';
    Sinon pourquoi tu déclares ta structure dans le main()?


  3. #3
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 528
    Points
    3 528
    Par défaut
    Nan... c'est pire que ça l'erreur...

    Tu as typedef "struct azerty" en un type "T"...

    Tu dois maintenant déclarer une variable "var" de type "T" qui va pouvoir accéder au champ c.

    Et déclare les types en dehors des fonctions comme te le suggère moins1, c'est mieux
    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
     
    struct azerty
    {
      char c[10];
      char val[10];
    };
     
    typedef struct azerty T;
     
    int main()
    {
      T var; //variable "var" de type "T", c'est a dire de type "struct azerty"
     
      var.c = strcpy(var.c, "hello"); //l'erreur est au niveau de cette instruction
      puts(var.c);
      return 0;
    }
    EDIT : et il y a bien un problème de strcpy comme le disait moins1 ! (je n'ai pas assez relu le bout de code)

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

Discussions similaires

  1. Erreur "Syntax error on token "(", new expected after this token"
    Par domxaline dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 20/02/2013, 15h40
  2. Syntax error on token
    Par ourab dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 21/11/2009, 20h49
  3. "syntax error before '(' token " .. oO
    Par jbarreau-mainson dans le forum C
    Réponses: 3
    Dernier message: 08/04/2009, 11h21
  4. syntax error before '!' token
    Par titmael dans le forum C
    Réponses: 18
    Dernier message: 10/11/2006, 23h07
  5. Problème de compilation (parse error before '*' token)
    Par moon93 dans le forum Autres éditeurs
    Réponses: 8
    Dernier message: 11/06/2006, 22h39

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