M3rCo Posté(e) le 18 février 2004 Partager Posté(e) le 18 février 2004 L'énnoncé => Créer une structure nom , prénom , âge. Ecrire un programme de gestion de fichier ( texte ) avec un menu d'acceuil qui propose de créer un fichier , de lire , d' y ajouter une fiche , et d'en chercher une . Programme ke j'ai ou ya une erreur mé je vois pas laquelle ! #include<stdio.h> #include<conio.h> #include<string.h> typedef struct { char nom[10]; char prenom[10]; int age; } carte; void creer_fichier(FILE *f,char *n) { char choix; carte fiche; clrscr(); printf("CREATION DU FICHIER \n\n"); printf("NOM DU FICHIER A CREER:"); gets(n); flushall(); f=open(n,"w"); do { printf("\nSAISIE D'UNE FICHE?(o/n)"); choix=(char)getchar(); flushall(); if ((choix=='o')||(choix=='O')) { printf("\nNOM:");gets(fiche.nom); printf("PRENOM:");gets(fiche.prenom); printf("AGE:");scanf("%d",&fiche.age); flushall(); fwrite(&fiche,sizeof(carte),1,f); } } while((choix=='o')||(choix=='O')); fclose(f); } void lire_fichier(FILE *f,char *n) { carte fiche; int compteur=0; clrscr(); printf("LECTURE DU FICHIER\n\n"); printf("NOM DU FICHIER A LIRE:");gets(n); flushall(); f=fopen(n,"r"); if(f==NULL)printf("\nERREUR? ce fichier n'EXISTE PAS\n\n"); else { printf("\nLISTING DU FICHIER\n\n"); while(fread(&fiche,sizeof(carte),1,f)!=0) { printf("fiche n %d:\n",compteur); compteur++; printf("%s %s %d an(s)\n\n",fiche.nom,fiche.prenom,fiche.age); } fclose(f); } printf("POUR CONTINUER PRESSER UNE TOUCHE"); getch(); } void ajout(FILE *f,char *n) { carte fiche; char choix; clrscr(); printf("AJOUT D'UNE FICHE\n\n"); printf("NOM DU FICHIER A MODIFIER:"); gets(n); flushall(); f=fopen(n,"a"); do { printf("\nSAISIE D'UNE FICHE ?(o/n)"); choix=(char)getchar(); flushall(); if((choix=='o')||(choix=='O')) { printf("\nNOM:");gets(fiche.nom); printf("PRENOM:");gets(fiche.prenom); printf("AGE:");scanf("%d,&fiche.age); flushall(); fwrite(&fiche,sizeof(carte),1,f); } } while((choix=='o')||(choix=='O')); fclose(f); } void recherche(FILE *f,char *n) { carte fiche; int compteur=0; char trouve=0,nn[10],pp[10]; clrscr(); printf("RECHERCHE DE FICHE\n\n"); printf("NOM DU FICHIER:"); gets(n); flushall(); f=fopen(n,"r"); printf("\nFICHE A RETROUVER:\n"); printf("NOM:");gets(nn); printf("PRENOM:")gets(pp); flushall(); while((fread(&fiche,sizeof(carte),1,f)!=0)&&(trouve==0)) { if((strcmp(fiche.nom,nn)==0)&&(strcmp(fiche.prenom,pp)==0)) { trouve=1; printf("FICHE RETROUVEE: FICHE n%2d\n"); } compteur++; } if(trouve==O)printf("CETTE FICHE N'EXISTE PAS\n"); fclose(f); printf("POUR CONTINUER PRESSER UNE TOUCHE"); getch(); } void main() { FILE *fichier char nom[10]; char coix; do } clrscr(); printf("\t\t\tGESTION DE FICHIER\n"); printf("\t\t\t<---------------->\n"); printf("CREATION DU FICHIER -->1\n"); printf("LECTURE DU FICHIER -->2\n"); printf("AJOUTER UNE FICHE -->3\n"); printf("RECHERCHER UNE FICHE ->4\n"); printf("QUIT -->S\n\n"); printf("VOTRE CHOIX:"); choix=(char)getchar(); flushall(); switch(choix) { case'1':creer_fichier(fichier,nom);break; case'2':lire_fichier(fichier,nom);break; case'"':ajout(fichier,nom);break; case'4':recherche(fichier,nom);break; } } while((choix!='S')&&(choix!='s')); } Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 18 février 2004 Partager Posté(e) le 18 février 2004 Damned, sans indentation c'est illisible... Et ça fait quoi comme erreur exactement ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
mogwai93 Posté(e) le 18 février 2004 Partager Posté(e) le 18 février 2004 De même , c'est illisible déjà 1 erreur dans la méthode creer_fichier Remplace f=open(n,"w"); par f=fopen(n,"w"); Ensuite fait une méthode de printf("\nSAISIE D'UNE FICHE ?(o/n)"); choix=(char)getchar(); flushall(); if((choix=='o')||(choix=='O')) { printf("\nNOM:");gets(fiche.nom); printf("PRENOM:");gets(fiche.prenom); printf("AGE:");scanf("%d,&fiche.age); flushall(); fwrite(&fiche,sizeof(carte),1,f); } il me semble que ce bout de code revient souvent ensuite, pour ton erreur, t'as quel message ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
M3rCo Posté(e) le 18 février 2004 Auteur Partager Posté(e) le 18 février 2004 l'erreur est 114 c:\docume~1\m3rco\mesdoc~1\untitl~1.cpp unterminated character constant il me la trouve dans cette ligne la => if(trouve==O)printf("CETTE FICHE N'EXISTE PAS\n"); Lien vers le commentaire Partager sur d’autres sites More sharing options...
mogwai93 Posté(e) le 19 février 2004 Partager Posté(e) le 19 février 2004 Dans la méthode void ajout(FILE *f,char *n) remplace printf("AGE:");scanf("%d,&fiche.age); par printf("AGE:");scanf("%d",&fiche.age); Dans la méthode void recherche(FILE *f,char *n) remplace printf("PRENOM:")gets(pp); par printf("PRENOM:");gets(pp); et remplace if(trouve==O)printf("CETTE FICHE N'EXISTE PAS\n"); par if(trouve==0)printf("CETTE FICHE N'EXISTE PAS\n"); Fait attention, avec certains éditeurs, on ne voit pas la différence entre le "O" et le zéro "0" C'est sans doute là le problème... ou peut-être la présence du ' dans le printf.... ?? dans la méthode main() remplace void main() { FILE *fichier char nom[10]; char coix; do } clrscr(); par void main() { FILE *fichier; char nom[10]; char choix; do { clrscr(); Ensuite ca devrait fonctionner au pire, t'as un pb de link ou de compilo Tu as testé avec quel compilateur ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
M3rCo Posté(e) le 19 février 2004 Auteur Partager Posté(e) le 19 février 2004 ben la a mon avis g pu d'erreur mé j'ai un probleme de compilo ! mon compile c Dev-c ++ kan je compile il me dit => C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0x6b):untitl~1.cpp: undefined reference to `clrscr' C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0xd2):untitl~1.cpp: undefined reference to `flushall(void)' C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0x150):untitl~1.cpp: undefined reference to `flushall(void)' C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0x272):untitl~1.cpp: undefined reference to `clrscr' C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0x3b7):untitl~1.cpp: undefined reference to `clrscr' C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0x41e):untitl~1.cpp: undefined reference to `flushall(void)' C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0x49c):untitl~1.cpp: undefined reference to `flushall(void)' C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0x56a):untitl~1.cpp: undefined reference to `clrscr' C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0x605):untitl~1.cpp: undefined reference to `flushall(void)' C:\DOCUME~1\M3rCo\LOCALS~1\Temp\cckzdaaa.o(.text+0x791):untitl~1.cpp: undefined reference to `clrscr' Lien vers le commentaire Partager sur d’autres sites More sharing options...
mogwai93 Posté(e) le 19 février 2004 Partager Posté(e) le 19 février 2004 voila reponse pour le pb avec clrscr C'est normal avec DevCpp tu cherches 'clrscr devcpp' sur google tu verras les reponses c'est un pb avec la librairie conio donc pour resoudre le pb tu remplaces #include<conio.h> par #include<conio.c> ou alors tu utilises un compilo payant.... ou tu developpes toi meme tes routines....(certains sont faciles à faire si tu connais l'assembleur) pour le flushall, je cherche.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
M3rCo Posté(e) le 19 février 2004 Auteur Partager Posté(e) le 19 février 2004 merci bocoup^le nombre derreur a réduit ! ca fé ke 2 mois ke je programme, il ne reste plus ke ca a corriger ! C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccAPaaaa.o(.text+0x4db):lol.cpp: undefined reference to `flushall(void)' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccAPaaaa.o(.text+0x559):lol.cpp: undefined reference to `flushall(void)' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccAPaaaa.o(.text+0x7fe):lol.cpp: undefined reference to `flushall(void)' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccAPaaaa.o(.text+0x87c):lol.cpp: undefined reference to `flushall(void)' C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\ccAPaaaa.o(.text+0x9e1):lol.cpp: undefined reference to `flushall(void)' Lien vers le commentaire Partager sur d’autres sites More sharing options...
M3rCo Posté(e) le 19 février 2004 Auteur Partager Posté(e) le 19 février 2004 c bon ca remarche , je remercie Mongwai ki ma bien aider 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.