Déclaration de type struct en entrée ( C )

Fermé
Cameron31 - 13 févr. 2010 à 16:08
Cameron31 Messages postés 3 Date d'inscription samedi 13 février 2010 Statut Membre Dernière intervention 11 mars 2010 - 13 févr. 2010 à 16:38
Bonjour à tous,
Voila, je voudrait me faire un sous programme de saisie d'étudiants et je voulais savoir si il était possible d'inclure en entrée de sous programme un type défini dans un main
Je vous montre mon entête :
void SaisirEtu (const char pFichier[] , const char pTypeStruct[] , int pnbEtuAsaisir)

pFichier est le nom de mon fichier : en l'occurence etudiant.test
pTypeStruct est le type de ma structure déclarée dans mon fichier main.c
pnbEtuAsaisir est le nombre d'étudiant que le user veut saisir dans le fichier

voici la structure déclarée :
typedef struct
{
char Numero[7] ;
char Nom[26] ;
char Annee ;
}
TInscrits ;

et voici le corps de mon sspg :
void SaisirEtu (const char pFichier[] , const char pTypeStruct[] , int pnbEtuAsaisir)
{
FILE * stream ;
int i ;

TInscrits Etud ;

stream = fopen(pFichier,"w");
if (stream != NULL)
{
printf(">SAISIE DES ETUDIANTS>>>>>>\n");
for(i=0 ; i<pnbEtuAsaisir ; i++)
{
printf("\t -[Etudiant n°%i ]-\n",i+1);
printf("-Saisissez le numero de l'etudiant : ");
gets(Etud.Numero);
fflush(stdin);
printf("\n");

printf("-Saisissez son nom : ");
gets(Etud.Nom);
fflush(stdin);
printf("\n");

printf("-Saisissez son annee : ");
scanf("%c",&Etud.Annee);
fflush(stdin);
printf("\n\n");


fwrite(& Etud, sizeof(pTypeStruct), 1, stream);
}
fclose(stream);
}
}


J'espère que je suis pas trop brouillons dans mes explications...
Merci de vos réponses !


Cordialement, Cameron

1 réponse

Cameron31 Messages postés 3 Date d'inscription samedi 13 février 2010 Statut Membre Dernière intervention 11 mars 2010
13 févr. 2010 à 16:38
voici le vrai corps du sous programme
void SaisirEtu (const char pFichier[] , const char pTypeStruct[] , int pnbEtuAsaisir)
{
FILE * stream ;
int i ;

pTypeStruct Etud ;

stream = fopen(pFichier,"w");
if (stream != NULL)
{
printf(">SAISIE DES ETUDIANTS>>>>>>\n");
for(i=0 ; i<pnbEtuAsaisir ; i++)
{
printf("\t -[Etudiant n°%i ]-\n",i+1);
printf("-Saisissez le numero de l'etudiant : ");
gets(Etud.Numero);
fflush(stdin);
printf("\n");

printf("-Saisissez son nom : ");
gets(Etud.Nom);
fflush(stdin);
printf("\n");

printf("-Saisissez son annee : ");
scanf("%c",&Etud.Annee);
fflush(stdin);
printf("\n\n");


fwrite(& Etud, sizeof(pTypeStruct), 1, stream);
}
fclose(stream);
}
}
une erreur s'est glissée tout à l'heure dans mon sspg donc voici la bonne version
mais qui forcément.. ne fonctionne pas
0