NiTrOuS Posté(e) le 29 avril 2004 Partager Posté(e) le 29 avril 2004 /************************************** * * * 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 More sharing options...
mogwai93 Posté(e) le 29 avril 2004 Partager Posté(e) le 29 avril 2004 Ca ne vient pas de ce bout de code ? if(strcmp((*a).del,tmp)==0&&(cpt/5!=1)) ... else if(cpt/5==1) car à la 6ème fiche, il va dans le else à faire : enleve le else de la ligne else if(cpt/5==1) et ca devrait passer Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 29 avril 2004 Auteur Partager Posté(e) le 29 avril 2004 c etait bien ca, j avais trouvé en refaisant tout dans ma tete et en effet la sixieme fiche n etait pas affichée ... merci beaucoup Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 29 avril 2004 Partager Posté(e) le 29 avril 2004 &(*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 More sharing options...
XZombi Posté(e) le 30 avril 2004 Partager Posté(e) le 30 avril 2004 &(*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 More sharing options...
NiTrOuS Posté(e) le 1 mai 2004 Auteur Partager Posté(e) le 1 mai 2004 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 More sharing options...
theocrite Posté(e) le 1 mai 2004 Partager Posté(e) le 1 mai 2004 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 More sharing options...
Sentinel Posté(e) le 1 mai 2004 Partager Posté(e) le 1 mai 2004 Le but n'était surtout pas de te vexer, désolé si ça a été le cas... 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 More sharing options...
theocrite Posté(e) le 1 mai 2004 Partager Posté(e) le 1 mai 2004 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 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 More sharing options...
NiTrOuS Posté(e) le 2 mai 2004 Auteur Partager Posté(e) le 2 mai 2004 ok ok 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 More sharing options...
theocrite Posté(e) le 2 mai 2004 Partager Posté(e) le 2 mai 2004 ok ok 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 More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.