Bonsoir tout le monde,
le programme consiste à entrer des produits de codes différents dans un fichier alors je dois à chaque fois vérifier que le code n'existe pas et s'il existe j'affiche un message d'erreur ,mais le problème que ma fonction de vérification verif_code() ne fonctionne pas correctement en effet , si je donne le code 1 puis 2 puis 1 le message d'erreur s'affiche et la machine me demande d'entrer un nouveau code alors je mais 2 dans ce cas le message d'erreur ne s'affiche pas une autre fois malgré que le 2 est répété 2 fois ? merci pour ceux qui puissent m'aider
mon code est le suivant :
Code:#include <stdio.h> #include <stdlib.h> FILE * produit; long int Codep,Codepr; char Couleur[30]; float prix; int nbp,i; void verif_code() { produit=fopen("produit.doc","r"); int trouve=0; while((!(feof(produit)))&&(trouve==0)) { printf("donner le code n %d à rechercher : ",i); scanf("%ld",&Codepr); fscanf(produit,"%ld", &Codepr); if(Codep != Codepr) { printf("donner la couleur du produit numéro %d\n",i); scanf("%s",Couleur); printf("donner le prix du produit numéro %d\n",i); scanf("%f",&prix); trouve=1; } else { printf("erreur le code existe déjà ") ; trouve=0; } fclose(produit); } } int main(int argc, char *argv[]) { printf("donner le nombre de produits "); scanf("%d",&nbp); produit=fopen("produit.doc","w"); printf("donner le code du produit numéro %d\n",1); scanf("%ld",&Codep); printf("donner la couleur du produit numéro %d\n",1); scanf("%s",Couleur); printf("donner le prix du produit numéro %d\n",1); scanf("%f",&prix); fprintf(produit,"Code du produit :%ld de couleur :%s ayant pour prix : %f\n",Codep,Couleur ,prix); fclose(produit); for(i=2;i<=nbp;i++) { verif_code(); produit=fopen("produit.doc","a"); fprintf(produit,"Code du produit :%ld de couleur :%s ayant pour prix : %f\n",Codepr,Couleur ,prix); fclose(produit); } system("PAUSE"); return 0; }
-----