Aller au contenu

Petit problème d affichage en C


NiTrOuS

Messages recommandés

/**************************************
*                                     *
*   Fonction affichage fiche client   *
*                                     *
**************************************/

void affiche_fiche_client(struct enreg *a)            /*Fonction d affichage d une fiche*/
{
FILE *f;
int ligne=3,ok=0,ok2=0,cpt=0;
char tmp[2]={"0"};
clrscr();
f=fopen("client.dat","rb");
if(f==NULL)
{
 printf("Le fichier client n existe pas");
 ok2=1;
}
else
 {
  fread(&(*a),sizeof(struct enreg),1,f);
  while(!feof(f))
  {
   if(strcmp((*a).del,tmp)==0&&(cpt/5!=1))
   {
    if(cpt==0)
     {
      gotoxy(12,1);
      printf("Fichier voiture");
      ligne=3;
     }
    cpt++;
    printf("\n\nNom: ");
    gotoxy(30,ligne);
    ligne++;
    printf("%s",(*a).nom);
    printf("\nPrenom: ");
    gotoxy(30,ligne);
    ligne++;
    printf("%s",(*a).prenom);
    printf("\nDate de naissance: ");
    gotoxy(30,ligne);
    ligne++;
    printf("%s",(*a).datenais);
    printf("\nAdresse\nRue: ");
    gotoxy(30,ligne);
    ligne++;
    printf("%s",(*a).rue);
    printf("\nNumero: ");
    gotoxy(30,ligne);
    ligne++;
    printf("%s",(*a).numero);
    printf("\nCode postal: ");
    gotoxy(30,ligne);
    ligne++;
    printf("%s",(*a).codepost);
    printf("\nVille: ");
    gotoxy(30,ligne);
    ligne=ligne+2;
    printf("%s",(*a).ville);
    ok=1;
   }
   else if(cpt/5==1)
   {
    printf("\n\nAppuyez sur enter pour continuer le defilement");
    getch();
    clrscr();
    cpt=0;
   }
   fread(&(*a),sizeof(*a),1,f);
  }
  fclose(f);
 }
 if(ok==0&&ok2==0)
 {
  clrscr();
  printf("Le fichier client est vide");
 }
getch();
}

Voilà quand j exécute ma fonction, la sixieme fiche n apparait pas, si vous voyez pourquoi dites le moi parce que la je suis coincé :(

Lien vers le commentaire
Partager sur d’autres sites

&(*a)

Oh c'est très beau ça... sauf que c'est totalement absurde !

- a contient ton adresse,

- *a le contenu de la case mémoire à l'adresse,

- &(*a) l'adresse du contenu de la case mémoire à l'adresse, c'est-à-dire... a !

Enfin si ça t'amuse, essaie ausi &(*(&(*a))), voire même &(*(&(*(&(*a))))) !

Diagnostique : réviser la notion de pointeur.

Lien vers le commentaire
Partager sur d’autres sites

&(*a)

Oh c'est très beau ça... sauf que c'est totalement absurde !

- a contient ton adresse,

- *a le contenu de la case mémoire à l'adresse,

- &(*a) l'adresse du contenu de la case mémoire à l'adresse, c'est-à-dire... a !

Enfin si ça t'amuse, essaie ausi &(*(&(*a))), voire même &(*(&(*(&(*a))))) !

Diagnostique : réviser la notion de pointeur.

:bocul:

Lien vers le commentaire
Partager sur d’autres sites

c'est malin de vous moquer des gens qui débutent en C franchement ... très intelligent chapeau !

Vous ne collez vraiment pas à la mentalité des INpactiens, je ne sais même pas pourquoi vous êtes ici ...

C'est vraiment triste ce genre de reflexion débile, je ne me moque pas de toi sur des trucs que tu ne sais pas et que moi je sais alors fais pas ton grand parce que je me suis trompé dans les pointeurs ...

Lien vers le commentaire
Partager sur d’autres sites

c'est malin de vous moquer des gens qui débutent en C franchement ... très intelligent chapeau !

Vous ne collez vraiment pas à la mentalité des INpactiens, je ne sais même pas pourquoi vous êtes ici ...

C'est vraiment triste ce genre de reflexion débile, je ne me moque pas de toi sur des trucs que tu ne sais pas et que moi je sais alors fais pas ton grand parce que je me suis trompé dans les pointeurs ...

Nitrous, tu as tord de le prendre mal.

Le but n'était pas de te vexer.

Surtout Sentinel n'est pas vraiment comme ça. Regarde ses posts sur le forum, tu verra qu'il aide pas mal de débutants (sans se moquer d'eux).

Et puis ça m'est arrivé de donner des cours de C dans mon école (C, c'est le seul truc que je maitrise un peu avec linux). Ben des erreurs comme ça sont utiles par ce que 1/si quelqu'un fait ce genre d'erreurs, alors tout le monde peut le faire 2/Si tout le monde en rigole, tout le monde retiend (pas vraiment en fait, ce serait trop beau, mais ça aide un peu).

Lien vers le commentaire
Partager sur d’autres sites

Le but n'était surtout pas de te vexer, désolé si ça a été le cas... :D

Je voulais simplement te signaler, de manière un peu humoristique, que ton utilisation des pointeurs était un peu bizarre.

Ce n'était pas une bête erreur de syntaxe facile à détecter, mais un concept apparemment mal assimilé, et il est beaucoup plus difficile de s'apercevoir tout seul de ce genre d'erreur et de se corriger. C'est pour cela que je pointais ce problème du doigt (de l'index droit pour cliquer plus exactement :8 )

(PS : (*a).truc s'écrit avantageusement a->truc )

Lien vers le commentaire
Partager sur d’autres sites

Sans compter que les pointeurs, c'est le gros point noir du C, pas vraiment point noir dans la mesure ou c'est super pratique, mais dans le sens ou c'est difficile à assimiler pour les débutants (surtout quand on commence les listes, les arbres, les graphes, les tableaux de pointeurs, les tableaux de tableaux de pointeurs de pointeurs :D etc...), et pour les personnes confirmées c'est un casse tête pour faire quelque chose exempt de failles et qui ne plante pas (enfin, ça dépend de la complexité du logiciel codé).

Lien vers le commentaire
Partager sur d’autres sites

ok ok :reflechis:

moi je dois juste rendre un projet, c est un programme qui s occupe de la gestion d un parc de voitures d occasion, avec gestions des clients, fournisseurs, voitures etc

c est clair que les pointeurs pour moi c est la galère, en plus mon erreur est axeptée par le compilateur

le a->truc on me l a appris mais j ai jamais utilisé lol

enfin merci quand meme

Lien vers le commentaire
Partager sur d’autres sites

ok ok :humour:

moi je dois juste rendre un projet, c est un programme qui s occupe de la gestion d un parc de voitures d occasion, avec gestions des clients, fournisseurs, voitures etc

c est clair que les pointeurs pour moi c est la galère, en plus mon erreur est axeptée par le compilateur

le a->truc on me l a appris mais j ai jamais utilisé lol

enfin merci quand meme

Si tu compile avec GCC, compile avec l'option -Wall, c'est très important.

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...