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 :

Passage d'une structure en fonction


Sujet :

C

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 78
    Par défaut Passage d'une structure en fonction
    Bonjour, je voudrais passer une structure dans une fonction.
    Voici mon code :
    L'appel de la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    printf("Veuillez entrer une fonction\n");
                             scanf("%s",&fonction);
                             nombre=nbabsents(&fonction,&nombre_employes,&*personne);
    Le paramètres "personne" est une variable de type structure.

    Voici la fonction :
    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
    int nbabsents(fonction,nombre_employes, personne)
    {
        int resultat,i;
        i=0;
        resultat=0;
        while(i<=nombre_employes)
        {
          if((personne[i].fonction==fonction)&&(personne[i].present==0))
          {
            resultat=resultat+1;
          }
          i=i+1;
        }
        return(resultat);
    }
    L'erreur ce situe sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if((personne[i].fonction==fonction)&&(personne[i].present==0))
    Le compilateur me dit : "subscripted value is neither array nor pointer".

    Merci de bien vouloir m'aider

  2. #2
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Le compilateur doit dire aussi d'autres choses, non? Parce que comme définition de fonction,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nbabsents(fonction,nombre_employes, personne) {...}
    , c'est louche. Ce n'est même pas du style K&R1 car les paramètres ne sont pas tous des entiers.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 78
    Par défaut
    Je ne comprend pas ce que vous voulez dire.
    J'ai essayé de renseigner les types des variables passés en paramètres.
    Ce qui donne ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nbabsents(char fonction, int nombre_employes, Employes personne)
    Sachant que "Employes" est une structure de données et "personne" la variable de type "Employes".

    De plus, je n'ai pas déclaré de prototype de cette fonction dans mon programme principal.

    As-tu une idée?

  4. #4
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Si fonction est de type char, alors le code suivant va poser problème:
    Sachant qu'une chaîne contient au moins '\0' à la fin, ça ne laisse plus beaucoup de place aux autres caractères.

  5. #5
    Membre émérite Avatar de stephl
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    643
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2007
    Messages : 643
    Par défaut
    Ensuite, votre appel à nbabsents() ne correspond pas du tout à la définition; par exemple, le second paramètre doit être un entier mais vous passez une adresse!

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 78
    Par défaut
    Comme il est difficile de comprendre avec ses bouts de code,
    je vous copie la totalité du code.
    Peut-etre comprendrais-je 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
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    #include <stdio.h>
    #include <stdlib.h> // bibliotèque pour traiter les fichiers
    #include <conio.h>
    /*FILE* fopen(const char* nomdufichier, const char* modeOuverture); 
    int fclose(FILE* pointeurSurFichier);
    char* fgets(char* chaine, int nombreDeCaracteresALire, FILE* pointeurSurFichier);*/
    int max=0;
    typedef struct  // Déclaration de la structure
    {
        char nom[25]; // Nom
        char prenom[25]; //Prenom
        char fonction[70]; //fonction
        int anciennete; //ancienneté
        char tel[10]; //telephone
        int present; //prend la valeur 1 si employé présent sinon prend la veleur 0 
    } Employes;
     
    /*void afficheEmployes(Employes *personne) // Fonction qui affiche les valeurs de x et y
    {
        printf("Le nom est : %s\n", personne[1].nom);
        printf("Le prenom est : %s\n",personne[1].prenom);
        getch();
    }*/ 
     
    int main(void)
    { 
        int choix, nomnbre, present,c,anciennete,rep, nombre_employes,nombre;
        char nom[25], prenom[25], fonction[70], tel[10];
        Employes personne[50];
        FILE* fichier = NULL; 
        fichier = fopen("employes1.txt","r+");
        if (fichier != NULL)
        {
            //Remplissage du fichier
            printf("Voulez vous creer le fichier? 1:oui 2:non\n");
            scanf("%d",&rep);              
            while(rep==1)
            {
                         printf("\n");
                         printf("Nom\n");
                         scanf("%s",&nom);
                         fprintf(fichier,"%s\t",nom);
                         printf("\n");
     
                         printf("\n");
                         printf("Prenom\n");  
                         scanf("%s",&prenom);
                         fprintf(fichier,"%s\t",prenom);
                         printf("\n");
     
                         printf("\n");
                         printf("Fonction\n"); 
                         scanf("%s",&fonction);
                         fprintf(fichier,"%s\t",fonction);
                         printf("\n");
     
                         printf("\n");
                         printf("Ancinnete\n"); 
                         scanf("%d",&anciennete);
                         fprintf(fichier,"%d\t",anciennete);
                         printf("\n");
     
                         printf("\n");
                         printf("Telephone\n");  
                         scanf("%s",&tel);
                         fprintf(fichier,"%s\t",tel);
                         printf("\n");
     
                         printf("\n");
                         printf("Present 1:oui 0:non\n");     
                         scanf("%d",&present);
                         fprintf(fichier,"%d\n",present);
                         printf("\n");
                         printf("Autre employe? 1:oui 0:non\n");
                         scanf("%d",&rep);
            } 
                nombre_employes=0;
                while(!feof(fichier))
                {
                   fscanf(fichier,"%s %s %s %d %s %d",&personne[nombre_employes].nom,&personne[nombre_employes].prenom,&personne[nombre_employes].fonction,&personne[nombre_employes].anciennete,&personne[nombre_employes].tel,&personne[nombre_employes].present);
                   nombre_employes=nombre_employes+1;
                }
     
            //On peut lire et écrire dans le fichier
            printf("===Bienvenue dans la gestion de la liste du personnel, voici les actions disponibles===\n\n");
            printf("0 - Voir le nombre de personnes qui ont la meme fonction\n");
            printf("1 - Nom des personnes ayant le numero de poste renseigne\n");
            printf("2 - Nombre de personnes ayant l'anciennete la plus elevee\n");
            printf("3 - Identite de la personne presente ayant la fonction renseignee\n");
            printf("4 - Numero de poste d'une personne selon son nom et son prenom\n");
            printf("5 - Gerer la liste des employes\n");
            printf("Faites votre choix\n");
            scanf("%d",&choix);
            switch(choix)
            {
     
                    case 0 : 
                             printf("Veuillez entrer une fonction\n");
                             scanf("%s",&fonction);
                             nombre=nbabsents(&fonction,&nombre_employes,&*personne);
                             printf("Il y a %d personnes qui ont la fonction %s\n",nombre,fonction);
                             break;
     
                    /*case 1 :
                             printf("Veuillez entrer un numero de poste\n");
                             scanf("%d",&tel);
                             listeposte(tel,&*personne);
                             break;
                             
                    case 2 : 
                             retraite(&*personne);         
                             break;
                             
                    case 3 :
                             printf("Veuillez entrer une fonction\n");
                             scanf("%s",&fonction);
                             identfonct(&fonction,&*personne);
                             break;
                             
                    case 4 : 
                             printf("Veuillez entrer un nom\n");
                             scanf("%s",&nom);
                             printf("Veuillez entrer un prenom\n");
                             scanf("%s",&prenom);
                             posteN(nom,prenom,&*personne);
                             break;
                             
                    case 5 :
                            ("===Ajout de nouveaux membres ou consultation de la liste du personnel===\n");
                            printf("1 - Inscrire de nouveaux employes\n");
                            printf("2 - Afficher le personnel de l'entreprise\n");
                            printf("Faites votre choix\n");
            }*/      
     
            }              
     
     
            /*fscanf(fichier,"%s %s %s %s",&personne[0].nom,&personne[0].prenom,&personne[1].nom,&personne[1].prenom);
            //printf("%s %s",personne[1].nom,personne[1].prenom);*/
            fclose(fichier);
            //afficheEmployes(&*personne); // Appel de la fonction    
            }  
        else
        {
            // On affiche un message d'erreur si on veut
            printf("Impossible d'ouvrir le fichier employes1.txt");
        }
        getch();
        return 0;
    }
     
    int nbabsents(char fonction, int nombre_employes, Employes personne)
    {
        int resultat,i;
        i=0;
        resultat=0;
        while(i<=nombre_employes)
        {
          if((personne[i].fonction==fonction)&&(personne[i].present==0))
          {
            resultat=resultat+1;
          }
          i=i+1;
        }
        return(resultat);
    }
    Merci encore

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Déjà corrige toutes les lectures de chaines :

    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
     
                         printf("Nom\n");
                         scanf("%s",&nom);
                         fprintf(fichier,"%s\t",nom);
                         printf("\n");
     
                         printf("\n");
                         printf("Prenom\n");  
                         scanf("%s",&prenom);
                         fprintf(fichier,"%s\t",prenom);
                         printf("\n");
     
                         printf("\n");
                         printf("Fonction\n"); 
                         scanf("%s",&fonction);
                         fprintf(fichier,"%s\t",fonction);
                         printf("\n");
    ....                     
                         printf("\n");
                         printf("Telephone\n");  
                         scanf("%s",&tel);
                         fprintf(fichier,"%s\t",tel);
                         printf("\n");
    Une chaîne est un tableau de char, dont le nom correspond à l'adresse du premier élement....

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
                         printf("Telephone\n");  
                         scanf("%s",tel);
    De plus, scanf n'a pas de limite par défaut, sauf le \n, donc dans ton cas il faudrait soit faire une saisie propre (voir les mutiples posts sur ce sujet), soit mettre la bonne longueur dans le format.

    Ensuite, une comparaison de chaîne s'effectue avec strcmp et non pas ==.

    Donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
          if((personne[i].fonction==fonction)&&(personne[i].present==0))
    est faux et effectue la comparaison de la VALEUR des pointeurs....

    Corrige ça, et on verra après...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 78
    Par défaut
    Ok, merci.
    Je vias commencer par corriger cela, je vous informe de l'avancement de mes travaux.

  9. #9
    Membre éclairé
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nombre=nbabsents(&fonction,&nombre_employes,&*personne);
    Cette ligne là est bizarre

    Ta fonction demande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nbabsents(char fonction, int nombre_employes, Employes personne)
    Et tu lui donnes des adresses, &nombre_employes = adresse de nombre_employes, donc dans ta fonction tu obtiens 0x001215a au lieu 5 par exemple.

    Pour travailler avec des structures dans des fonctions, le plus simple est de faire appel aux pointeurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int nbabsents(char fonction, int nombre_employes, Employes * personne[50])
    Et ton appel ressemblera à ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nombre=nbabsents(fonction,nombre_employes,&personne);
    Dans ta fonction quand tu veux obtenir des renseignement via les pointeurs, le . devient ->.

    Exemple:
    personne[i].fonction avec des pointeurs devient personne[i]->fonction

    Je n'ai pas eu l'occasion de tout regarder mais je t'ai donné quelques pistes sur ce qui m'a choqué.

    Bonne continuation

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 78
    Par défaut
    Voila mon programme une fois les erreurs corrigées :
    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
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    #include <stdio.h>
    #include <stdlib.h> // bibliotèque pour traiter les fichiers
    #include <conio.h>
    #include <string.h>
    /*FILE* fopen(const char* nomdufichier, const char* modeOuverture); 
    int fclose(FILE* pointeurSurFichier);
    char* fgets(char* chaine, int nombreDeCaracteresALire, FILE* pointeurSurFichier);*/
    int max=0;
    typedef struct  // Déclaration de la structure
    {
        char nom[25]; // Nom
        char prenom[25]; //Prenom
        char fonction[70]; //fonction
        int anciennete; //ancienneté
        char tel[10]; //telephone
        int present; //prend la valeur 1 si employé présent sinon prend la veleur 0 
    } Employes;
     
    /*void afficheEmployes(Employes *personne) // Fonction qui affiche les valeurs de x et y
    {
        printf("Le nom est : %s\n", personne[1].nom);
        printf("Le prenom est : %s\n",personne[1].prenom);
        getch();
    }*/ 
     
    int main(void)
    { 
        int nbabsents(char, int, Employes);//prototype de la fonction nbasents
        int choix, nomnbre, present,c,anciennete,rep, nombre_employes,nombre;
        char nom[25], prenom[25], fonction[70], tel[10];
        Employes personne[50];
        FILE* fichier = NULL; 
        fichier = fopen("employes1.txt","r+");
        if (fichier != NULL)
        {
            //Remplissage du fichier
            printf("Voulez vous creer le fichier? 1:oui 2:non\n");
            scanf("%d",&rep);              
            while(rep==1)
            {
                         printf("\n");
                         printf("Nom\n");
                         scanf("%s",nom);
                         fprintf(fichier,"%s\t",nom);
                         printf("\n");
     
                         printf("\n");
                         printf("Prenom\n");  
                         scanf("%s",prenom);
                         fprintf(fichier,"%s\t",prenom);
                         printf("\n");
     
                         printf("\n");
                         printf("Fonction\n"); 
                         scanf("%s",fonction);
                         fprintf(fichier,"%s\t",fonction);
                         printf("\n");
     
                         printf("\n");
                         printf("Ancinnete\n"); 
                         scanf("%d",&anciennete);
                         fprintf(fichier,"%d\t",anciennete);
                         printf("\n");
     
                         printf("\n");
                         printf("Telephone\n");  
                         scanf("%s",tel);
                         fprintf(fichier,"%s\t",tel);
                         printf("\n");
     
                         printf("\n");
                         printf("Present 1:oui 0:non\n");     
                         scanf("%d",&present);
                         fprintf(fichier,"%d\n",present);
                         printf("\n");
                         printf("Autre employe? 1:oui 0:non\n");
                         scanf("%d",&rep);
            } 
                nombre_employes=0;
                while(!feof(fichier))
                {
                   fscanf(fichier,"%s %s %s %d %s %d",&personne[nombre_employes].nom,&personne[nombre_employes].prenom,&personne[nombre_employes].fonction,&personne[nombre_employes].anciennete,&personne[nombre_employes].tel,&personne[nombre_employes].present);
                   nombre_employes=nombre_employes+1;
                }
     
            //On peut lire et écrire dans le fichier
            printf("===Bienvenue dans la gestion de la liste du personnel, voici les actions disponibles===\n\n");
            printf("0 - Voir le nombre de personnes qui ont la meme fonction\n");
            printf("1 - Nom des personnes ayant le numero de poste renseigne\n");
            printf("2 - Nombre de personnes ayant l'anciennete la plus elevee\n");
            printf("3 - Identite de la personne presente ayant la fonction renseignee\n");
            printf("4 - Numero de poste d'une personne selon son nom et son prenom\n");
            printf("5 - Gerer la liste des employes\n");
            printf("Faites votre choix\n");
            scanf("%d",&choix);
            switch(choix)
            {
     
                    case 0 : 
                             printf("Veuillez entrer une fonction\n");
                             scanf("%s",fonction);
                             nombre=nbabsents(fonction,nombre_employes,&personne);
                             printf("Il y a %d personnes qui ont la fonction %s\n",nombre,fonction);
                             break;
     
                    /*case 1 :
                             printf("Veuillez entrer un numero de poste\n");
                             scanf("%d",&tel);
                             listeposte(tel,&*personne);
                             break;
                             
                    case 2 : 
                             retraite(&*personne);         
                             break;
                             
                    case 3 :
                             printf("Veuillez entrer une fonction\n");
                             scanf("%s",&fonction);
                             identfonct(&fonction,&*personne);
                             break;
                             
                    case 4 : 
                             printf("Veuillez entrer un nom\n");
                             scanf("%s",&nom);
                             printf("Veuillez entrer un prenom\n");
                             scanf("%s",&prenom);
                             posteN(nom,prenom,&*personne);
                             break;
                             
                    case 5 :
                            ("===Ajout de nouveaux membres ou consultation de la liste du personnel===\n");
                            printf("1 - Inscrire de nouveaux employes\n");
                            printf("2 - Afficher le personnel de l'entreprise\n");
                            printf("Faites votre choix\n");
            }*/      
     
            }              
     
     
            /*fscanf(fichier,"%s %s %s %s",&personne[0].nom,&personne[0].prenom,&personne[1].nom,&personne[1].prenom);
            //printf("%s %s",personne[1].nom,personne[1].prenom);*/
            fclose(fichier);
            //afficheEmployes(&*personne); // Appel de la fonction    
            }  
        else
        {
            // On affiche un message d'erreur si on veut
            printf("Impossible d'ouvrir le fichier employes1.txt");
        }
        getch();
        return 0;
    }
     
    int nbabsents(char fonction,int  nombre_employes,Employes * personne)
    {
        int resultat,i;
        i=0;
        resultat=0;
        while(i<=nombre_employes)
        {
          if ((strcmp(personne[i].fonction,fonction)==0)&&(personne[i].present==0))
          {
            resultat=resultat+1;
          }
          i=i+1;
        }
        return(resultat);
    }
    Il existe cependant toujours des erreurs sur ces lignes :

    *
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nombre=nbabsents(fonction,nombre_employes,&personne);
    *
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((strcmp(personne[i].fonction,fonction)==0)&&(personne[i].present==0))

    Merci encore pour votre aide

  11. #11
    Membre émérite
    Profil pro
    Eleveur de cornichons
    Inscrit en
    Juin 2002
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Eleveur de cornichons
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 074
    Par défaut
    Penses stp à ajouter les erreurs la prochaine fois. Ca aide beaucoup pour localiser le problème.
    Je vois une erreur (peut-être parmi d'autres). personne est un tableau de structure donc si tu passes 'personne' à une fonction qui attend un Employes* , tu passes l'adresse du premier élément (&personne[0]).
    Donc c'est faux de rajouter un '&' lors de l'appel.
    Pour le premier paramètre, tu attends un char, et tu lui passes un char*. C'est faux aussi, donc le prototype doit prendre un char* fonction et non char fonction...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int nbabsents(char* fonction,int  nombre_employes,Employes * personne)
    // et pour l'appel
    nombre=nbabsents(fonction,nombre_employes,personne);
    Voilà

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 78
    Par défaut
    Ok, merci.
    Je vous montre donc mes erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ((strcmp(personne[i].fonction,fonction)==0)&&(personne[i].present==0))
    Ici il y a 2 erreurs :
    -" invalid conversion from `char' to `const char*' "
    -"initializing argument 2 of `int strcmp(const char*, const char*)' "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nombre=nbabsents(fonction,nombre_employes,personne);
    Sur ce code, la seule erreur est celle ci :
    -"conversion from `Employes*' to non-scalar type `Employes' requested"

    Voila tout merci encore

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

Discussions similaires

  1. Passage d'une structure en argument de fonction
    Par DDaviDD dans le forum Débuter
    Réponses: 2
    Dernier message: 19/05/2014, 07h26
  2. Passage d'une structure en paramètre
    Par NeraOne dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/05/2007, 18h16
  3. Passage d'une structure dans une fonction
    Par god_enel dans le forum C
    Réponses: 7
    Dernier message: 01/02/2007, 15h33
  4. Passage d'une structure dans une fonction
    Par god_enel dans le forum C
    Réponses: 8
    Dernier message: 22/01/2007, 15h35
  5. [MFC] Passage d'une structure dans une method
    Par KPitN dans le forum MFC
    Réponses: 5
    Dernier message: 18/06/2004, 10h11

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