C LAN. boucle infinie au l'etulisation des str. dans les fichier
The Root
Messages postés
1
Statut
Membre
-
the root -
the root -
Bonjour,
j'ais un problemme dans un programme C lorsque l'utilisation des structures dans les fichiers.. c'est que cette boucle est infinie !!
c'est le procedure de remplissage du fichier:
et c'est le procedure d'ajoute des autres personnes:
la boucle infinie est:
et aussi cette boucle est infinie !! :
merci de resoule cet problemme...
merci d'avance :)
j'ais un problemme dans un programme C lorsque l'utilisation des structures dans les fichiers.. c'est que cette boucle est infinie !!
c'est le procedure de remplissage du fichier:
void remp(){
printf("donner le nome de fichier a creer : \n");
scanf("%s",f);
p = fopen(f, "w");
printf("*** Création du fichier %s ***\n", f);
printf("nombre des personnes que vous voulez ajoute :\n ");
scanf("%d",&n);
for (i=0;i<n;i++)
{
printf("personne N: %d \n", i+1);
printf("Numero de personne N: %d \n", i+1);
scanf("%d",&e.nm);
printf("Nom de personne N: %d \n", i+1);
scanf("%s",e.nom);
printf("Prenom de personne N: %d \n", i+1);
scanf("%s",e.pnom);
printf("adress electronique de personne N: %d \n", i+1);
scanf("%s",e.email);
printf("date de naissance de personne N: %d \n", i+1);
scanf("%d",&e.d.j);
scanf("%d",&e.d.m);
scanf("%d",&e.d.a);
fprintf(p, "%d, %s, %s, %s, %d/%d/%d\n",e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
}
fclose(p);
}
et c'est le procedure d'ajoute des autres personnes:
void ajoute(){
printf("donner le nome de votre fichier : \n");
scanf("%s",f);
p = fopen(f, "r");
c=0;
if (!p)
{
c=1;
}
if(c==0){
q = fopen(qq, "w");
printf("personne N: %d \n", i+1);
printf("Numero de personne N: %d \n", i+1);
scanf("%d",&e.nm);
printf("Nom de personne N: %d \n", i+1);
scanf("%s",e.nom);
printf("Prenom de personne N: %d \n", i+1);
scanf("%s",e.pnom);
printf("adress electronique de personne N: %d \n", i+1);
scanf("%s",e.email);
printf("date de naissance de personne N: %d \n", i+1);
scanf("%d",&e.d.j);
scanf("%d",&e.d.m);
scanf("%d",&e.d.a);
while (!feof(p))
{
fscanf(p, "%d, %s, %s, %s, %d/%d/%d\n",&e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
fprintf(q,"%d, %s %s, %s, %d/%d/%d\n",e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
}
fprintf(q,"%d, %s %s, %s, %d/%d/%d\n",e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
while (!feof(p))
{
fscanf(q, "%d, %s, %s, %s, %d/%d/%d\n",&e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
fprintf(p,"%d, %s %s, %s, %d/%d/%d\n",e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
}
fclose(q);
fclose(p);
}
else if (c==1){ printf("\a erreur: impossible d'ouvrir le fichier: %s.\n", f);}
}
la boucle infinie est:
while (!feof(p))
{
fscanf(p, "%d, %s, %s, %s, %d/%d/%d\n",&e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
fprintf(q,"%d, %s %s, %s, %d/%d/%d\n",e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
}
et aussi cette boucle est infinie !! :
while (!feof(p))
{
fscanf(q, "%d, %s, %s, %s, %d/%d/%d\n",&e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
fprintf(p,"%d, %s %s, %s, %d/%d/%d\n",e.nm,e.nom,e.pnom,e.email,e.d.j,e.d.m,e.d.a);
}
merci de resoule cet problemme...
merci d'avance :)
A voir également:
- C LAN. boucle infinie au l'etulisation des str. dans les fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
c'est quoi la fonction feof() sans connaitre son code on ne peut pas t'aider , car peut etre que !feof(p) n'existe pas ( feof(p) ne return jamais une valeure nulle ).
[Dal]
Messages postés
6373
Statut
Contributeur
1 106
http://www.cplusplus.com/reference/cstdio/feof/
smohamedl
Messages postés
24
Statut
Membre
1
donc tu programme en c++, pourquoi avoir poster ta question dans le forum C ?
the root
non c dons c lang. !!!!!!!!!!!!!!!!!!!!!!!!