Salut, je débute avec les fonctions de lecture et d’ecriture dans les fichiers en c.
Et donc voici qu’a l’execution de mon programme suivant, je recois comme erreure “Erreur de segmentation” mais je ne retrouve pas l’erreur. J’ai besoin de votre aide sur ce coup là!
#include <stdio.h>
#include <stdlib.h>
typedef struct SAdherent {
int adh_Index;
char adh_Nom[100];
char adh_Prenom[100];
};
struct SAdherent Adherent;
int rech(int Numrech)
{
FILE *F;//Création du pointeur en memoire sur F
F=fopen(“Adherents.txt”,“r”);
do
{
fscanf(F," %d ; %s ; %s ",&Adherent.adh_Index, Adherent.adh_Nom, Adherent.adh_Prenom);
if(Adherent.adh_Index == Numrech)
{
fclose(F);//Fermeture du canal vers le fichier
return 1; //Objet trouvé
}
}
while(!feof(F));
fclose(F);
return -1;
}
/----Procédure d’ajout-----/
void AjouterAdherent()
{
int Num;
FILE*F;
F=fopen(“Adherent.txt”,“a”);
printf("\n Entrez le numero du nouvel adherent: “);
scanf(”%d", &Num);
printf("\n %d",Num);
fflush(stdin);
if(rech(Num) == -1)
{
Adherent.adh_Index = Num;
printf("\n Entrez le nom :");
fgets(Adherent.adh_Nom, 100, stdin);
fflush(stdin);
printf("\n Entrez le Prenom :");
fflush(stdin);
fgets(Adherent.adh_Prenom, 100, stdin);
fflush(stdin);
fprintf(F,"%d ; %s ; %s\n",Adherent.adh_Index,Adherent.adh_Nom,Adherent.adh_Prenom);
fflush(stdin);//Liberation de la memoire
}
else
{
printf("\n Cet adherent existe deja.");
}
fclose(F);
}
int main()
{
AjouterAdherent();
}
Merci d’avance…