type mismatch

type mismatch - C - Programmation

Marsh Posté le 30-03-2006 à 15:30:34    

Bonjours a tous,

 

void highscore()
{
     FILE *fichier;
     struct joueur gamer;
     int i=2;
     
     initial();
     cprintf("Highscore" );
     fichier = fopen("score.duf","rb" );
     
     fenetre(20,7,60,20);
     gotoxy(3,1);
     printf("<<Nom" );
     gotoxy(32,1);
     cprintf("Score>>" );
     
     if(!fichier) //si le fichier n'existe pas
     {
                  fclose(fichier);
                  initscore(&amp;gamer);
                  fichier = fopen("score.duf","rb" );
                  }
   fread(&amp;gamer,sizeof(gamer),1,fichier);
   //lecture d la taille de la structure
   //dans le fichier
   
   while(!feof(fichier)) //tant que pas la fin de fichier
                     {
                         gotoxy(4,i);
                         printf("%d: %s      %1d",i-1,gamer.nom,gamer.score);
                         fread(&amp;gamer,sizeof(gamer),1,fichier);
                         i++;
                      }
                         getch();
                         fclose(fichier);

 

 }

 


voici une fonction ac laquelle j'ai rencontré une erreur en compilant mon programme, il me dit:

 

error "Type mismatch in redeclaration of 'hightscore' "

 

avez vous une solution pour corriger cette erreur?  merci

Reply

Marsh Posté le 30-03-2006 à 15:30:34   

Reply

Marsh Posté le 30-03-2006 à 15:37:28    

"redeclaration of 'hightscore' "
Apparemment tu as une déclaration implicite de hightscore dans ton code, et donc par défaut il la considère comme une fonction renvoyant un int.
tu as sans doute oublié de la déclarer en tête de ton fichier.

Reply

Marsh Posté le 30-03-2006 à 15:45:23    

Code :
  1. if(!fichier) //si le fichier n'existe pas
  2.      {
  3.                   fclose(fichier);


 
autrement dit fclose(NULL), plantage assuré
et sémantiquement pourquoi fermer un fichier dont l'ouverture à échouée ?
 
pour la lecture fais plutot
 

Code :
  1. while (fread(&gamer, sizeof gamer, 1, fichier) == 1) { ... }

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed