comportement bizzare lors d'un test
Ceci est un programme qui enregistre un nom et un mumero de telephone.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| void creer(struct Enreg fiche){
int rep=0; //valeur du test
printf("Sous-Programme création dune fiche.\n");
printf("Appuyez sur une touche...\n");
getch();
//saisie du nom et du numero
printf("\nSaisir le nom: ");
scanf("%s", &fiche.nom);
printf("Saisir le numero: ");
scanf("%s", &fiche.tel);
//on demande si on veux conserver la fiche ou pas
printf("Voulez vous conserveez cette fiche(1=yes//0=no): ");
scanf("%d", &rep);
/*si oui , tenter d'ouvrir le fichier*/
if(rep==1){
fd=fopen("repertoire.txt", "a+");
/*echec d'ouverture*/
if(fd==NULL){
printf("\nError lors de l/'ouverture du fichier spécifié.!\n");
}
/*ouverture réussie, on enregistre les données*/
else{
fprintf(fd, "%s\n", fiche.nom);
fprintf(fd, "%s\n", fiche.tel);
fclose(fd);
printf("Sauvegarde reussie!\n");
}
}
/*au cas ou on ne veux pas conserver la fiche*/
else{
fclose(fd);
printf("Echec sauvegarde!\n");
}
return;
} |
mon probleme se situe à ce stade:
Code:
1 2 3 4 5 6
| //on demande si on veux conserver la fiche ou pas
printf("Voulez vous conserveez cette fiche(1=yes//0=no): ");
scanf("%d", &rep);
/*si oui , tenter d'ouvrir le fichier*/
if(rep==1) |
Ainsi ici "rep" est declaré de type int, et je n'ai pas de probleme.
mais quand je déclare "rep" de type char, pour qu'on lui affecte la valeur 'y' ou 'n' ...bein ça ne marche pas, le programme s'arrête. :(