Forum Clubic

Probleme pour comparer - en C

salut jai un souci avec une fonction en C. Je voudrais faire en sorte que dans mon fichier il n’y est pas de doublon. Donc pas 2 fois la meme personne avec le meme nom et le meme prenom. Jai donc fait une fonction.
Pour l’instant je ne fais pas de paramètres, jai juste testé. Je demande donc le nom et le prenom, et je verifie si cette personne est deja inscrite dans le fichier. Mais ça passe pas. Jai l’impression qu’il me bloque au niveau de la 1ere personne inscrite.
Voila mon code

void doublon()
{
	char n[LG];
	char nom[LG];
	char prenom[LG];
	FILE *f;
	int trouve=0;
	seleve eleve;

	strcpy(n,nomdufichier());
	

f=fopen(n,"r");	
	
  
  do{
  	
  	printf("\n\nEntrez un nom:");
  	flushall();
  	gets(nom);
  	flushall();
  	printf("\nEntrez un prenom:");
  	flushall();
  	gets(prenom);
  	flushall();
  	fread(&eleve,sizeof(eleve),1,f);
  	if( (strcmp(nom,eleve.nom)==0) && (strcmp(prenom,eleve.prenom)==0) )
  	{
    
    trouve=1;
    flushall();
    printf("Y a un doublon");
  	}
  }while ( (!trouve) && (!feof(f)) );

flushall();
printf("Y a pas de doublon");
fclose(f);
getch();
}

Comment faire pour que ça marche?
Merci d’avance

flushall() fait quoi?

ça vide la memoire tampn, jlutilise pour avoir des soucis

C’est peut-être le “!trouve” qui pose problème ?
As-tu essayé avec “trouve==0” ?

Je me demande aussi si tu n’auras pas dans tous les cas l’affichage du message “Y a pas de doublon” à la fin…

tout ça pour dire a quelqu un qu il est pas la bonne personne ? lol

je rigole

tu peux donner la structure de ton seleve plz …


 do{
   printf("\n\nEntrez un nom:");
  flushall();
  gets(nom);
  flushall();
  printf("\nEntrez un prenom:");
  flushall();
  gets(prenom);
  flushall();

  ///fread(&eleve,sizeof(eleve),1,f);
  if( (strcmp(nom,"Einstein")==0) && (strcmp(prenom,"Albert")==0) )
  {
   
   trouve=1;
   flushall();
   printf("Y a un doublon");
  }
 }while ( !trouve );


ça marche ça ?