NiTrOuS Posted April 29, 2004 Posted April 29, 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é :(
mogwai93 Posted April 29, 2004 Posted April 29, 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
NiTrOuS Posted April 29, 2004 Author Posted April 29, 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
Sentinel Posted April 29, 2004 Posted April 29, 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.
XZombi Posted April 30, 2004 Posted April 30, 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.
NiTrOuS Posted May 1, 2004 Author Posted May 1, 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 ...
theocrite Posted May 1, 2004 Posted May 1, 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).
Sentinel Posted May 1, 2004 Posted May 1, 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 )
theocrite Posted May 1, 2004 Posted May 1, 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é).
NiTrOuS Posted May 2, 2004 Author Posted May 2, 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
theocrite Posted May 2, 2004 Posted May 2, 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.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.