bonjour a tous
je suis assez novice en c, je rencontre 2 problemes :
[g]1--dans ma fonction trie ci jointe quand je rentre des elements du tableau
en majuscule et en minuscule, la fonction ne trie pas- elle trie uniquement
si ce sont que des majuscules uniquement ou des minuscules
//les fonctions trier[/g]
void permute(disc *tableau,int i,int j);
void trier(disc *tableau,int nbdisc)
{
int i,j,min=0,tmp=0;
for(i=0;i<nbdisc;i=i+1)
// if(islower(tableau[i].auteur) !=0)
//toupper(tableau[i].auteur);
{
min=i;
for(j=i;j<nbdisc;j=j+1)
{
if(strcmp(tableau[min].auteur,tableau[j].auteur)>0)
min=j;
}
if(min !=i)
permute(tableau,i,min);
}
}
void permute(disc* tableau,int i,int min)
{
char temp[NBRE];
int tmp;
strcpy (temp,tableau[min].auteur);
strcpy(tableau[min].auteur,tableau[i].auteur);
strcpy(tableau[i].auteur,temp);
tmp=tableau[min].annee_album;
tableau[min].annee_album=tableau[i].annee_album;
tableau[i].annee_album=tmp;
tmp=tableau[min].reference;
tableau[min].reference=tableau[i].reference;
tableau[i].reference=tmp;
}
2--dans ma fonction chargement et sauvegarde lorsque je ferme mon programme
mon fichier est vide , mon programme efface tout lors de la fermeture.......
#include "discotheque.h"
/*prototype fonction sauvegarde BD*/
int sauvegarde_fichier(disc *tableau,int nbdisc)
{
int i;
FILE *fp;
fp=fopen("discotheque.dat","w" );
if(fp==NULL)
{ printf("erreur lors de la sauvegarde %s",fp);
return -1;}
for(i=0;i<nbdisc;i++)
{
fprintf(fp,"%s\t %d\t %d\t",tableau[i].auteur,&tableau[i].annee_album
,&tableau[i].reference);
}
printf("La sauvegarde est faites \n" );
fclose(fp);
return 0;
}
//prototype chargement
int chargement_fichier(disc* tableau, int *pt_nbdisc)
{
int i;
//char buffer;
FILE *fp;
fp=fopen("discotheque.dat","r" );
if(fp==NULL)
{
printf("erreur lors du chargement %s",fp);
return -1;
}
for(i=0;i<(*pt_nbdisc);i++)
// while((fgets(buffer,*pt_nbdisc,fp)!=NULL) && (i<NBRE_DISC))
{
fscanf(fp,"%s\t %d\t %d\t",tableau[i].auteur,&tableau[i].annee_album
,&tableau[i].reference);
}
printf("Le chargement est fait \n" );
fclose(fp);
return 0;
}
merci pour votre aide