S.v.b j'ai un programme en langage c faut
doghmi
Messages postés
26
Date d'inscription
Statut
Membre
Dernière intervention
-
doghmi Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
doghmi Messages postés 26 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
s.v.b j'ai un programme en langage c faut
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
struct stagaire
{
char nom[30];
char prenom[30];
char ville[30];
int age;
};
struct stagaire stag[30];
FILE *fichier;
char nfich[30];
int i,nbe;
printf("creation du fichier\n\n");
printf("entrer le nom du fichier a cree\n");
scanf("%s",&nfich);
fichier=fopen(nfich,"w");
printf(" entrer le nombre du personne a enregistrement\n");
scanf("%d",&nbe);
for(i=0;i<=nbe;i++)
{
getchar();
printf(" entrer le nom\n");
scanf("%s\n",&stag.nom);
printf("entrer le prenom\n");
scanf("%s",&stag.prenom);
printf("entrer votre ville\n");
scanf("%s",&stag.ville);
printf("entrer la date de naissance\n");
scanf("%d",&stag.age);
fwrite(&stag,sizeof(stag),1,fichier);
}
return 0;
}
s.v.b j'ai un programme en langage c faut
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
struct stagaire
{
char nom[30];
char prenom[30];
char ville[30];
int age;
};
struct stagaire stag[30];
FILE *fichier;
char nfich[30];
int i,nbe;
printf("creation du fichier\n\n");
printf("entrer le nom du fichier a cree\n");
scanf("%s",&nfich);
fichier=fopen(nfich,"w");
printf(" entrer le nombre du personne a enregistrement\n");
scanf("%d",&nbe);
for(i=0;i<=nbe;i++)
{
getchar();
printf(" entrer le nom\n");
scanf("%s\n",&stag.nom);
printf("entrer le prenom\n");
scanf("%s",&stag.prenom);
printf("entrer votre ville\n");
scanf("%s",&stag.ville);
printf("entrer la date de naissance\n");
scanf("%d",&stag.age);
fwrite(&stag,sizeof(stag),1,fichier);
}
return 0;
}
A voir également:
- S.v.b j'ai un programme en langage c faut
- Langage ascii - Guide
- Mettre en veille un programme - Guide
- Programme demarrage windows - Guide
- Langage binaire - Guide
- Forcer la fermeture d'un programme - Guide
4 réponses
Tu voulais probablement dire "faux" ... Effectivement :
C'est dû au fait que la variable est un tableau de structure et non une structure simple.
Il faut utiliser un indice (quelle valeur, à toi de voir) :
d'autre part, 'nom' est déjà une adresse (un nom de tableau désigne l'adresse de son premier membre). Il ne faut donc pas mettre '&'. Ne pas non plus mettre de '\n' dans le format du scanf().
Attention :
fait varier i de 0 à nbe+1, ce qui n'est probablement pas ce que tu veux ...
Il faut aussi vérifier que le fichier est correctement ouvert, le fermer après usage, etc. Je suppose que tu sais programmer en C...
-------------- Build: Debug in hello --------------- Compiling: main.c Linking console executable: bin\Debug\hello.exe C:\dev\hello\main.c:6: warning: function declaration isn't a prototype C:\dev\hello\main.c: In function `main': C:\dev\hello\main.c:22: warning: char format, different type arg (arg 2) C:\dev\hello\main.c:30: error: request for member `nom' in something not a structure or union C:\dev\hello\main.c:32: error: request for member `prenom' in something not a structure or union C:\dev\hello\main.c:34: error: request for member `ville' in something not a structure or union C:\dev\hello\main.c:36: error: request for member `age' in something not a structure or union Process terminated with status 1 (0 minutes, 1 seconds) 4 errors, 2 warnings
C'est dû au fait que la variable est un tableau de structure et non une structure simple.
Il faut utiliser un indice (quelle valeur, à toi de voir) :
scanf ("%s", stag[i].nom);
d'autre part, 'nom' est déjà une adresse (un nom de tableau désigne l'adresse de son premier membre). Il ne faut donc pas mettre '&'. Ne pas non plus mettre de '\n' dans le format du scanf().
Attention :
for (i = 0; i <= nbe; i++)
fait varier i de 0 à nbe+1, ce qui n'est probablement pas ce que tu veux ...
Il faut aussi vérifier que le fichier est correctement ouvert, le fermer après usage, etc. Je suppose que tu sais programmer en C...