Probleme d'erreur dans un programme [Résolu]

Signaler
Messages postés
26
Date d'inscription
jeudi 11 novembre 2004
Statut
Membre
Dernière intervention
29 octobre 2009
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
Bonjour,
Mon programme qui est un répertoire téléphonique, avec recherche de fiche par "nom"
comet une erreur, mais je ne sais pas d'ou elle viens
Merci de votre aide

#include <stdio.h>
#include <conio.h>
#include <string.h>


struct enreg{
char nom[30];
char tel[10];
}fiche;


creation(){
clrscr();
FILE *fd;
fd=fopen("fichier.dat","a+");
char c1;
printf("\nsous-programme de creation\n\n");
printf("Entrer le nom :");
scanf("%s",fiche.nom);
printf("Entrer le telephone :");
scanf("%s",fiche.tel);
do{
clrscr();
printf("Voulez-vous sauver cette fiche (o,n):");
scanf("%c",&c1);
switch(c1){
case 'o':fprintf(fd,"%s %s",fiche.nom,fiche.tel);break;
case 'n':break;
}
}while(c1!='o' && c1!='n');
fclose(fd);
}


recherche(){
FILE *fd;
fd=fopen("fichier.dat","r");
int ok=0;
char aide[30],c2;
printf("\nsous-programme de recherche\n\n");
printf("Entrez le nom recherche :");
scanf("%s",&aide);
fseek(fd,0,2);
do{
if(fd!=NULL)
{
while(!feof(fd) && ok==0)
{
if(!strcmp(fiche.nom,aide))
{
printf("%s %s",fiche.nom,fiche.tel);
ok=1;
}
printf("voulez-vous continuer la recherche ? (o/n)");
scanf("%c",c2);
}while(c2!='n');
printf("Fin du fichier, appuyer sur une touche...");
fclose(fd);
getch();
}


main(){
char c;
do{
clrscr();
printf(" ---menu--- \n\n");
printf(" '1' : creation d'un nouvelle fiche.\n\n");
printf(" '2' : recherche d'une fiche par nom.\n\n");
printf(" '3' : quitter le programme.\n\n");
printf(" Tapez votre choix?:");
scanf("%c",&c);
switch(c){
case '1':creation();break;
case '2':recherche();break;
}
}while(c!='3');printf("\nfin de programme");
}

1 réponse

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
scanf("%c",c2);
tu dois fournir l'adresse de c2 et non c2 (j'espère que tu comprends pourquoi), je pense que tu le sais car tu n'a pas fait l'erreur dans le main
scanf("%c",&c2);