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 :

remplir un tableau de structure via une fonction


Sujet :

C

  1. #1
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut remplir un tableau de structure via une fonction
    Bonjour!

    le code suivant me renvoies 2 erreurs.
    69:2 warning passing argument 3 of 'lirefscanf' from incompatible pointer type
    34:6 exepted 'struct ligne **' but argument is type of 'struct ligne (*) [10]'

    La fonction qui pose pb est la derniere appelée dans le main.

    Je ne comprend vraiment pas comment la corriger. Un copain me dit qu'aucune erreur ne lui apparait sous code block... et que je ne remplit jamais mon tableau car

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf(fp,"%s %s %d %d %d\n",sauveDonnee[i]->prenom, sauveDonnee[i]->nom, &sauveDonnee[i]->jour, &sauveDonnee[i]->mois, &sauveDonnee[i]->annee);
    ne marche pas.

    Merci par avance pour votre aide

    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
    67
    68
    69
    70
    71
    72
    73
     
    #include <stdio.h>
    #include <string.h>
     
     typedef struct {
      char prenom[100];
      char nom [100];
      int jour;
      int mois;
      int annee;  
    }ligne;
     
    int compteDonnees(char fichier[])
    {
     char lignes[200];
     int nbLignes=0;
     
     FILE * fp;
     
     // ouverture fichier et verif
     if ((fp=fopen (fichier,"r")) == NULL)
     printf("Impossible d'ouvrir le fichier données en lecture\n");
     
     // lecture ligne par ligne
     // while (!=feof(fp))
     while(fgets(lignes,200,fp)!= NULL){
     nbLignes++;
     //fscanf(fp,"%s %s %d %d %d\n",ligne);
     }
     
     fclose (fp);
     return nbLignes;
    }
     
    void lirefscanf (char fichier[], ligne * annif, ligne * sauveDonnee[])
    {
      int i,nbLignes;
     
      FILE * fp;
     
     // ouverture fichier et verif
     if ((fp=fopen (fichier,"r")) == NULL)
     printf("Impossible d'ouvrir le fichier données en lecture\n");
     
     nbLignes=compteDonnees(fichier);
     
     for(i=0; i<nbLignes;i++)
     {
      fscanf(fp,"%s %s %d %d %d\n",sauveDonnee[i]->prenom, sauveDonnee[i]->nom, &sauveDonnee[i]->jour, &sauveDonnee[i]->mois, &sauveDonnee[i]->annee);
     }
     
     fclose (fp);
    }
     
    ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
     
    int main (int argc, char argv[])
    {
     char nomFichier[100];
     ligne ligneTexte;
     ligne tabDonnee [10];
     
     printf("\tIndiquer le nom du fichier, avec son extension, svp\n");
     //gets(nomFichier);
     strcpy(nomFichier,"texte.txt");
     
     compteDonnees(nomFichier);
     lirefscanf(nomFichier,&ligneTexte,tabDonnee);
     
     
     return 0;
     
    }

  2. #2
    Membre du Club
    Homme Profil pro
    touristepationné
    Inscrit en
    Janvier 2012
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : touristepationné
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2012
    Messages : 132
    Points : 57
    Points
    57
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void lirefscanf (char fichier[], ligne * annif, ligne sauveDonnee[])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fscanf(fp,"%s %s %d %d %d\n",sauveDonnee[i].prenom, sauveDonnee[i].nom, &sauveDonnee[i].jour, &sauveDonnee[i].mois, &sauveDonnee[i].annee);

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par B65AcR Voir le message
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    void lirefscanf (char fichier[], ligne * annif, ligne * sauveDonnee[])
    Citation Envoyé par B65AcR Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void lirefscanf (char fichier[], ligne * annif, ligne sauveDonnee[])
    Bonjour
    Bon ben voilà tu as trouvé l'erreur. La prochaine fois, au lieu de répondre à ton propre post ben tu le modifies. Et tu peux dire aussi où elle était...

    Citation Envoyé par B65AcR Voir le message
    Je ne comprend vraiment pas comment la corriger. Un copain me dit qu'aucune erreur ne lui apparait sous code block...
    Dis -lui de mieux configurer son compilo...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. Remplir 2 tableaux via une fonction booléenne filtrant sur un tableau
    Par Elvaiz dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 31/03/2013, 16h06
  2. Réponses: 5
    Dernier message: 29/11/2012, 19h21
  3. Remplir un tableau dynamique 2D dans une fonction
    Par lmanceau dans le forum C++
    Réponses: 5
    Dernier message: 27/06/2011, 13h57
  4. Réponses: 2
    Dernier message: 12/05/2007, 01h57
  5. Réponses: 8
    Dernier message: 25/04/2006, 16h08

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