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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
|
FILE* f = NULL; // Creation d'un fichier global
// Définition d'une structure en globale
typedef struct annuaire annuaire; // Le programme reconnaitra directement annuaire comme une structure
struct annuaire{
char Nom[21];
char NumeroTel[15]; // On ajoute +1 pour le caractère d'échappement '/0'
int Age;
};
void partie1Saisie() // Appel de la saisie partie 1
{
system("cls"); // On éfface l'écran
// On présente ici l'exercice
printf("________________________________________________\n");
printf("Partie 1 - Fichier sequentiel :\n");
printf("------------------------------------------------\n");
printf("Saisir et enregistrer\n");
printf("------------------------------------------------\n\n");
// Déclaration & Initialisation des variables
annuaire UnAnnuaire = {"", "", 0}; // On initialise l'instanciation de struct annuaire
char ajoutContact = NULL;
char initAnnuaire = NULL;
// DEBUT
printf("Souhaitez vous initialiser l'annuaire ? [i]\nSaisissez une touche pour continuer..\n\n Votre choix : ");
fflush(stdin); // On vide le flux
scanf("%c", &initAnnuaire);
if (initAnnuaire == 'i')
{
printf("\n ** Annuaire initialise **\n\n");
}
else
{
printf("\n ** Ouverture de l'annuaire en mode append (ajout) **\n\n");
}
printf("------------------------------------------------\n\n");
if (initAnnuaire == 'i')
{
f = fopen("fichiers\\annuaire.txt", "w+"); // Ouverture en écriture + initialisation
// Le pointeur "f" devient alors un pointeur sur "annuaire.txt"
}
else
{
f = fopen("fichiers\\annuaire.txt", "a"); // Ouverture en écriture ajout (append)
}
if (f != NULL) // On verifie bien que le fichier a été crée
{
nouveauContact();
printf("\n\nAjouter un contact a l'annuaire [o]\nSaisissez une touche pour continuer..\n\n Votre choix : ");
fflush(stdin); // On vide le flux
scanf("%c", &ajoutContact);
printf("------------------------------------------------\n\n");
while (ajoutContact == 'o')
{
nouveauContact();
printf("\n\nAjouter un contact a l'annuaire [o]\nSaisissez une touche pour continuer..\n\n Votre choix : ");
fflush(stdin); // On vide le flux
scanf("%c", &ajoutContact);
printf("------------------------------------------------\n\n");
}
}
else
{
printf("Impossible d'ouvrir le fichier");
}
fclose(f); // Fermeture du fichier
// FIN
}
void nouveauContact() // "void partie1Saisie();"
{
// Declaration & Initialisation des variables
//char age[10]; // variable permettant de transtyper l'age dans une chaine de caractère
annuaire UnAnnuaire;
// DEBUT
printf("_____________Nouveau Contact : \n\n");
// Saisie du NOM
printf("\nNom (max 20 caracteres) : ");
scanf("%s", UnAnnuaire.Nom);
printf(" --------------------\n");
// Saisie de l'AGE
printf("Age : ");
scanf("%d", &UnAnnuaire.Age);
printf(" ---\n");
//sprintf(age, "%d", UnAnnuaire.Age); // Transtype Age de UnAnnuaire dans une chaine de caractère 'age'
// Saisie du NUMERO DE TELEPHONE
printf("Numero de telephone (xx-xx-xx-xx-xx) : ");
scanf("%s", UnAnnuaire.NumeroTel);
printf(" --------------\n");
fprintf(f,"%s;;%d;;%s\n", UnAnnuaire.Nom, UnAnnuaire.Age, UnAnnuaire.NumeroTel); // On copie dans le fichier
// FIN
} |
Partager