Quelle erreur dans ce programme en langage C

Résolu
salmimoro Messages postés 8 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
program C qui enregistre les information des employée ... utilse structure
le progamme que je cérée
mais compiler pas ...
quelle erreur ?
××××××××××Merci d'avance××××××××
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 struct employe
 {
  char nom[50] ;
  char prenon[50];
  char fanction[50];
  int salair[50];
  char matricle[50];
 } employe ;
 main()
 {
  FILE* index;
  int i,n;
  char  nomfichier[50];
  employe E;
  do
  {
   printf("entrez nom fichier\n");
   scanf("%s",&nomfichier);
   index=fopen(nomfichier,"W");
   if(!index)
   {
    printf("ereeur impossible \n");
    
   }
   
  }whille(!index);
  printf("entrez nombre employe \n");
  scanf("%d",&n)
  for(i=0;i<n;i++)
  {
   printf("entrez nom employe \n");
   scanf("%S",&E.nom);
   printf("entrez prenon \n");
   scanf("%S",&E.prenon);
   printf("entrez nom fanction \n");
   scanf("%S",&E.fanction);
   printf("entrez salair \n");
   scanf("%d",&E.salair);
   printf("entrez matricle \n");
   scanf("%S",&E.matricle);
   fprintf(inex,"%s\n%s\n%s\n%s\n%d\n",&E.nom,&E.prenon,&E.fanction,&E.matricle&E.salair);
   
  }
  fclose(index);
  system("pause";)
 
 }

2 réponses

fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Il faut lire les erreurs fournies par son compilateur.
Il y a en quelques unes que tu aurais trouvées tout seul.

whille
N'existe pas ! C'est while.

main()
Le bon prototype est : int main(void)

scanf("%s",&nomfichier);
scanf("%S",&E.nom);
scanf("%S",&E.prenon);
scanf("%S",&E.fanction);
scanf("%d",&E.salair);
scanf("%S",&E.matricle);

Pas de &. Ce n'est pas "%S", mais "%s" (S minuscule).

(inex,"%s\n%s\n%s\n%s\n%d\n",&E.nom,&E.prenon,&E.fanction,&E.matricle&E.salair);
Pas de &. Attention, il manque une virgule entre E.matricle et E.salair.

system("pause";)
Le point virgule est mal placé.

Et enfin, il manque le return 0; final.

Google is your friend
1
Utilisateur anonyme
 
+ inex -> index
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > Utilisateur anonyme
 
Yep bien vu !
Et j'en rajoute une :
index=fopen(nomfichier,"W");
Ce n'est pas "W" mais "w".
0
salmimoro Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Merci beaucoup .. Le programme fonctionne correctement maintenant ... Mais pourquoi ces chiffres apparaissent dans les résultats
info de employe0
h
h
h
j
2293160
info de employe1
fg
f
v
vc
2293160
info de employe2
s
c
cv
fg
2293160
info de employe3
fgf
bv
bv
bvbv
2293160
info de employe4
bv
fb
vb
c
2293160
0
Utilisateur anonyme
 
parce que

int salair[50];


donc salaire est un tableau de 50 entiers

du coup :

scanf("%d",&E.salair); 


te rempli la premiere case

et

 fprintf(...%d"...,&E.salair);


te renvoie l'adresse de ton tableau sous forme de int
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Pour corriger ce problème, tu peux utiliser :
int salair;
au lieu de int salair[50]; (sauf si tu as besoin d'un tableau, mais au vu de ton code, ce n'est pas le cas).
Corrige ce point, et reposte ton code pour qu'on voie où tu en es.
0
Utilisateur anonyme
 
Le compilateur te donne les erreurs
0
salmimoro Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
oui
0
salmimoro Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Je ne sais pas comment corriger cette erreur
0
Utilisateur anonyme
 
Moi non plus tant que tu ne la posteras pas
0
salmimoro Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Pouvez-vous écrire ce programme d'une autre manière
"""""""" program C qui enregistre les information des employée dans un fichier... utilse structure
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846 > salmimoro Messages postés 8 Date d'inscription   Statut Membre Dernière intervention  
 
Ce que veut dire Rocailleux, c'est de poster les erreurs fournis par ton compilateur...
0