Quelle erreur dans ce programme en langage C

Résolu/Fermé
salmimoro Messages postés 8 Date d'inscription vendredi 20 mai 2016 Statut Membre Dernière intervention 21 mai 2016 - Modifié par NHenry le 20/05/2016 à 19:50
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 21 mai 2016 à 22:09
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
Modifié par fiddy le 20/05/2016 à 20:57
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
20 mai 2016 à 21:06
+ inex -> index
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844 > Utilisateur anonyme
20 mai 2016 à 21:26
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 vendredi 20 mai 2016 Statut Membre Dernière intervention 21 mai 2016
21 mai 2016 à 01:25
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
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
21 mai 2016 à 10:55
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
20 mai 2016 à 20:08
Le compilateur te donne les erreurs
0
salmimoro Messages postés 8 Date d'inscription vendredi 20 mai 2016 Statut Membre Dernière intervention 21 mai 2016
20 mai 2016 à 20:22
oui
0
salmimoro Messages postés 8 Date d'inscription vendredi 20 mai 2016 Statut Membre Dernière intervention 21 mai 2016
20 mai 2016 à 20:24
Je ne sais pas comment corriger cette erreur
0
Utilisateur anonyme
20 mai 2016 à 20:30
Moi non plus tant que tu ne la posteras pas
0
salmimoro Messages postés 8 Date d'inscription vendredi 20 mai 2016 Statut Membre Dernière intervention 21 mai 2016
20 mai 2016 à 20:34
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 samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844 > salmimoro Messages postés 8 Date d'inscription vendredi 20 mai 2016 Statut Membre Dernière intervention 21 mai 2016
20 mai 2016 à 20:47
Ce que veut dire Rocailleux, c'est de poster les erreurs fournis par ton compilateur...
0