Intégrer une fonction à mon programme
Fermé
pépereF
Messages postés
36
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
25 janvier 2008
-
6 juil. 2007 à 08:34
pépereF Messages postés 36 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 25 janvier 2008 - 9 juil. 2007 à 23:05
pépereF Messages postés 36 Date d'inscription dimanche 11 décembre 2005 Statut Membre Dernière intervention 25 janvier 2008 - 9 juil. 2007 à 23:05
A voir également:
- Intégrer une fonction à mon programme
- Fonction si et - Guide
- Intégrer une vidéo dans un powerpoint - Guide
- Programme demarrage windows 10 - Guide
- Fonction moyenne excel - Guide
- Désinstaller programme windows 10 - Guide
1 réponse
pépereF
Messages postés
36
Date d'inscription
dimanche 11 décembre 2005
Statut
Membre
Dernière intervention
25 janvier 2008
2
9 juil. 2007 à 23:05
9 juil. 2007 à 23:05
#include<stdio.h> #include<string.h> #include<stdlib.h> FILE *fd;/*Declaration d'une variable fd de type fichier formaté*/ struct enreg/*Structure de type struct enreg*/ { char *nom;/*déclaration de la variable nom qui pointe sur un char*/ char *tel;/*déclaration de la variable tel qui pointe sur un char*/ }; /*Affiche une question et attend la saisie O ou N*/ int question(char *texte)/*Fonction question de type int ayant pour arguement texte qui pointe sur un char*/ { char reponse=' ';/*Déclaration de la variable reponse de type char auquel on affecte ' '*/ while (reponse!='o' && reponse!='n')/*tant que reponse est different de 'o' et reponse est different de 'n'*/ { printf("%s",texte);/*affichage de la saisie*/ reponse = getch();/*Attente d'un caractére au clavier*/ printf("\n"); /*convertion des majuscules en minuscules*/ if (reponse=='O') reponse='o'; if (reponse=='N') reponse='n'; if (reponse!='o' && reponse!='n') printf("!!!repondre par O ou N!!!\n"); } if (reponse=='o') return 1; /*1 c'est vrai*/ else return 0; /*0 c'est faux*/ } /*création d'une nouvelle fiche*/ void creation() { /*déclaration des variable locales auquel on affecte de la mémoire dynamique*/ struct enreg *fiche = malloc(sizeof(struct enreg)); fiche->nom = malloc(30 * sizeof(char)); fiche->tel = malloc(10 * sizeof(char)); int reponse; /*demande du nom et du numero de téléphone*/ printf("...Creation d'une fiche...\n"); printf("Nom ? "); scanf("%s",fiche->nom); printf("Numero de telephone ? "); scanf("%s",fiche->tel); /*Demande confirmation d'enregistrement*/ reponse = question("Enregistrer la fiche (O/N) ?"); /*si NON, on sort directement*/ if(reponse)/*si 1 on enregistre, voir la fonction question, sinon on va..*/ { /*se placer à la fin du fichier*/ fseek(fd,0,2); /*sinon on enregistre à la fin du fichier*/ fprintf(fd,"%s %s\n",fiche->nom,fiche->tel); printf("Fiche enregistrée\n");/*pour dire que c'est enregisté*/ } /*libération de la mémoire*/ free(fiche->nom); free(fiche->tel); free(fiche); } void rechercher() { /*déclaration des variable locales*/ struct enreg *fiche = malloc(sizeof(struct enreg));/*pour pouvoir...*/ fiche->nom = malloc(30 * sizeof(char));/*lire notre fichier...*/ fiche->tel = malloc(10 * sizeof(char));/*et y placer nos variables pour les comparer...*/ char *nom = malloc(30*sizeof(char));/*à notre chaine allouer dynamiquement*/ int err; int reponse; /*demande le nom à rechercher*/ printf("...rechercher une fiche...\n"); printf("nom a chercher ? "); scanf("%s",nom); /*positionnement au début du fichier*/ fseek(fd,0,0); /*lecture d'une fiche*/ err = fscanf(fd,"%s%s",fiche->nom,fiche->tel); /*si fin du fichier ou erreur*/ while (err > 0) { /*si la fiche correspond*/ if (strcmp(nom, fiche->nom) == 0) printf("nom:%s telephone:%s\n",fiche->nom,fiche->tel); /*on lit une autre fiche*/ err=fscanf(fd,"%s%s",fiche->nom,fiche->tel); } /*Libération de la mémoire*/ free(fiche->nom); free(fiche->tel); free(fiche); free(nom); reponse = question("continuer la recherche (O/N)?"); if (reponse) rechercher();/*on retourne dans la fonction*/ } /*Affichage du menu générale et attend l'entrée d'un choix*/ int menu() { int choix=0; while (choix<1 || choix>3) { printf("menu : \n"); printf("1 - creation d'une nouvelle fiche\n"); printf("2 - recherche d'une fiche\n"); printf("3 - quitter\n"); printf("votre choix ? "); scanf("%d",&choix); if (choix<1 || choix>3) printf("!!!entrez 1, 2 ou 3 !!!\n"); } return choix; } /*programme principale*/ int main() { int choix=0; fd=fopen("rep.dat","a+"); printf("...REPERTOIRE TELEPHONIQUE...\n"); while (choix!=3) { choix=menu(); switch (choix)/*suivant le choix*/ { case 1 : creation();/*Cas 1, accéder àla fonction création*/ break; case 2 : rechercher();/*cas 2, accéder à la fonction rechercher*/ break; default : break;/*quitter (ne rien faire)*/ } } fclose(fd);/*Fermeture du fichier*/ printf("Merci, et au revoir\n"); scanf("%s"); return 0; }
aidez-moi svp