Problème struct et affichage en colonne

Problème struct et affichage en colonne - C - Programmation

Marsh Posté le 31-05-2005 à 19:28:25    

Bonjour, j ai un petit problème en C :
 

Code :
  1. void listedvd()
  2. {
  3. FILE *liredvd;
  4. FILE *lirek7;
  5. FILE *lirecd;
  6. int i;
  7. liredvd=fopen(fichierdvd,"r" );
  8. textcolor(2);
  9. gotoxy(2,2); cprintf("Liste des albums DVD" );
  10. gotoxy(2,3); cprintf("====================" );
  11. textcolor(6);
  12. gotoxy(2,4); cprintf("Artiste :" );
  13. gotoxy(17,4); cprintf("Titre :" );
  14. gotoxy(31,4); cprintf("Type :" );
  15. gotoxy(45,4); cprintf("Piste :" );
  16. gotoxy(59,4); cprintf("Ann‚e :" );
  17. gotoxy(73,4); cprintf("Prix :" );
  18. gotoxy(2,5); cprintf("-----------------------------------------------------------------------------" );
  19. textcolor(15);
  20. while(fread(&album,sizeof(album),1,liredvd),!feof(liredvd))
  21. {
  22.   gotoxy(2,6); printf("%s\n",album.titre);
  23. }
  24. fclose(liredvd);
  25. getch();
  26. }


 
j ai donc creer un struct qui s'appelle album et dans celui-ci j'ai rentré plusieur titre d'album et quand j essaie de tous les afficher ca marche si j'enleve le gotoxy mais j aimerai les afficher à un endroit précis les un en dessous des autres; si je met le gotoxy il m'affiche que le dernier titre rentré...
 
merci d'avance pour les réponses  :)

Reply

Marsh Posté le 31-05-2005 à 19:28:25   

Reply

Marsh Posté le 31-05-2005 à 20:05:01    

Rulius a écrit :

Bonjour, j ai un petit problème en C :


Ne compile pas. Merci de poster une version compilable et un exemple de fichier... (ou un moyen de le créer).
 
Un truc comme ça quoi...

Spoiler :


/* C standard */
#include <stdio.h>
#include <string.h>
 
/* extension */
#include <conio.h>
 
struct album
{
   char titre[32];
};
 
void makedvd (char const *fichierdvd)
{
   FILE *fp = fopen (fichierdvd, "rb" );
 
   if (fp == NULL)
   {
      fp = fopen (fichierdvd, "wb" );
 
      if (fp != NULL)
      {
         struct album album;
 
         *album.titre = 0;
         strncat (album.titre, "Le Sarko Show", sizeof album.titre - 1);
         fwrite (&album, sizeof album, 1, fp);
 
         *album.titre = 0;
         strncat (album.titre, "Quartier V.I.P.", sizeof album.titre - 1);
         fwrite (&album, sizeof album, 1, fp);
 
         fclose (fp);
      }
   }
   else
   {
      fclose (fp);
   }
}
 
void listedvd (char const *fichierdvd)
{
   FILE *liredvd = fopen (fichierdvd, "r" );
 
   if (liredvd != NULL)
   {
 
      struct album album;
 
      textcolor (2);
      gotoxy (2, 2);
      cprintf ("Liste des albums DVD" );
      gotoxy (2, 3);
      cprintf ("====================" );
      textcolor (6);
      gotoxy (2, 4);
      cprintf ("Artiste :" );
      gotoxy (17, 4);
      cprintf ("Titre :" );
      gotoxy (31, 4);
      cprintf ("Type :" );
      gotoxy (45, 4);
      cprintf ("Piste :" );
      gotoxy (59, 4);
      cprintf ("Ann‚e :" );
      gotoxy (73, 4);
      cprintf ("Prix :" );
      gotoxy (2, 5);
      cprintf ("-----------------------------------------------------------------------------" );
      textcolor (15);
 
      while (fread (&album, sizeof album, 1, liredvd) == 1)
      {
         gotoxy (2, 6);
         cprintf ("%s\n", album.titre);
         getch ();
      }
      fclose (liredvd);
   }
   else
   {
      perror (fichierdvd);
   }
 
}
 
int main (void)
{
   static const char fichierdvd[] = "dvd.txt";
 
   makedvd (fichierdvd);
 
   listedvd (fichierdvd);
   return 0;
}


Message édité par Emmanuel Delahaye le 31-05-2005 à 20:20:13

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
Reply

Sujets relatifs:

Leave a Replay

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