C LAN. boucle infinie au l'etulisation des str. dans les fichier
The Root
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
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
6205
Date d'inscription
Statut
Contributeur
Dernière intervention
1 105
http://www.cplusplus.com/reference/cstdio/feof/
smohamedl
Messages postés
22
Date d'inscription
Statut
Membre
Dernière intervention
1
donc tu programme en c++, pourquoi avoir poster ta question dans le forum C ?
the root
non c dons c lang. !!!!!!!!!!!!!!!!!!!!!!!!