Bonjour à tous

Une petite explication de mon application :
Via un menu, l'utilisateur peut ajouter un CD dans une médiathèque et/ou afficher le contenu de la médiathèque.
Lors de l'ajout, le programme demande à l'utilisateur de saisir :
  • Id du CD (avec un nbr de caractère imposé)
  • Titre du CD
  • Année du CD
  • Nom de l'artiste
  • Prénom de l’artiste


Sachant que j'ai deux structure :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
typedef struct {	char prenom [20];
	char nom[20];
}Interpretes ;
 
 
typedef struct {
	char id [8];
	char titre [20];
	int annee;
	Interpretes chanteur;
} CD;
J'ai donc créer une fonction pour la saisi des CD :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// FONCTION D'AJOUT DE CDCD AjoutCD(CD *tbl,int index) {
	int cont=1;
	int length=0;
	do {
		printf("ID (12 caractéres) : ");
		scanf("%s%*[^\n]", tbl[index].id);
		length=strlen(tbl[index].id);
		if (length!=12) {
			printf("Format incorrect (le nbr de caractéres doit etre de 8)\n");
			viderBuffer();
		}
		viderBuffer();
	} while(length!=12);
	getchar();
	printf("Titre (mettre des \'_\' à la place des espaces) : ");
  scanf("%s%*[^\n]", tbl[index].titre);
	getchar();
	do {
		printf("annee : ");
		scanf("%d", &tbl[index].annee);
		getchar();
		if (tbl[index].annee==0) {
			printf("Veuillez saisir une annee en chiffres !!\n");
			viderBuffer();
			cont=0;
		}
		else
		{
			cont=1;
		}
	} while(cont==0);
  printf("Prenom (mettre des \'_\' à la place des espaces) : ");
  scanf("%s%*[^\n]", tbl[index].chanteur.prenom);
	getchar();
  printf("Nom (mettre des \'_\' à la place des espaces) : ");
  scanf("%s%*[^\n]", tbl[index].chanteur.nom);
	getchar();
}
Puis, j'ai un code qui va trier les albums par année et par titre et les affichent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// FONCTION D'AFFICHAGE DES CD AVEC TRISvoid AfficheCD(CD tbl[1000],int index) {
	/*
	* Tri par années
	*/
  int continuer=1;
  CD temp;
  while (continuer==1) {
    continuer=0;
    for (int i= 0; i<index-1; i++) {
      if (tbl[i].annee>tbl[i+1].annee) {
        temp=tbl[i];
        tbl[i]=tbl[i+1];
        tbl[i+1]=temp;
        continuer=1;
      }
    }
  }
	/*
	* Tri par titre
	*/
	int continuer_titre=1;
	while (continuer_titre==1) {
	 continuer_titre=0;
	  for (int i= 0; i<index; i++) {
	  	if (tbl[i].annee==tbl[i+1].annee) {
	      CD temp_titre;
	      int compare;
 
 
	      compare=strcmp(tbl[i].titre,tbl[i+1].titre);
 
 
	      if (compare>0) {
	        temp_titre=tbl[i];
	        tbl[i]=tbl[i+1];
	        tbl[i+1]=temp_titre;
	        continuer_titre=1;
	      }
	    }
	  }
	}
 /*
 * Affichage
 */
	for (int i= 0; i<index; i++) {
	printf("| %-20s| %-20s| %-7d| %-20s| %-20s|\n",
	  tbl[i].id,
	  tbl[i].titre,
	  tbl[i].annee,
	  tbl[i].chanteur.nom,
	  tbl[i].chanteur.prenom);
	}
}
Mon problème (car il y en a un quand même ^), c'est que j'ai un problème à l'affichage des albums :
Nom : capture2.jpg
Affichages : 143
Taille : 24,8 Ko

Le titre s'affiche aussi avec l'ID du CD.

Une idées SVP. J'ai beau chercher, je trouve pas (peut être un manque d’expérience).

Merci d'avance.