Vous êtes sur la page 1sur 9

Les fichiers :

Exercice 1 :
#include <stdio.h>
#include <stdlib.h>

int main()
{
char filename[100];
int num_records, i;
FILE *file_ptr;

// Demande à l'utilisateur de saisir le nom du fichier


printf("Entrez le nom du fichier : ");
scanf("%s", filename);

// Demande à l'utilisateur le nombre d'enregistrements à créer


printf("Entrez le nombre d'enregistrements : ");
scanf("%d", &num_records);

// Ouvre le fichier en mode écriture


file_ptr = fopen(filename, "w");

// Vérifie si le fichier a été ouvert avec succès


if (file_ptr == NULL) {
printf("Impossible d'ouvrir le fichier.\n");
return 1;
}

// Remplit le fichier avec des enregistrements


for (i = 1; i <= num_records; i++) {
fprintf(file_ptr, "Enregistrement %d\n", i);
}

// Ferme le fichier
fclose(file_ptr);

// Ouvre le fichier en mode lecture


file_ptr = fopen(filename, "r");

// Vérifie si le fichier a été ouvert avec succès


if (file_ptr == NULL) {
printf("Impossible d'ouvrir le fichier.\n");
return 1;
}

// Affiche le contenu du fichier


printf("Contenu du fichier :\n");
char buffer[100];
while (fgets(buffer, 100, file_ptr)) {
printf("%s", buffer);
}

// Ferme le fichier
fclose(file_ptr);

return 0;
}

Exercice 2 :
#include <stdio.h>

int main() {
char filename[100];
FILE *file_ptr;
long int num_chars = 0;

// Demande à l'utilisateur de saisir le nom du fichier


printf("Entrez le nom du fichier : ");
scanf("%s", filename);

// Ouvre le fichier en mode lecture


file_ptr = fopen(filename, "r");

// Vérifie si le fichier a été ouvert avec succès


if (file_ptr == NULL) {
printf("Impossible d'ouvrir le fichier.\n");
return 1;
}

// Calcule le nombre de caractères dans le fichier


char c;
while ((c = fgetc(file_ptr)) != EOF) {
num_chars++;
}

// Affiche le nombre de caractères


printf("Le fichier %s contient %ld caractères.\n", filename, num_chars);

// Ferme le fichier
fclose(file_ptr);

return 0;
}

Exercice 3 :
#include <stdio.h>

int main() {
char source_filename[100], dest_filename[100];
FILE *source_file_ptr, *dest_file_ptr;
char c;

// Demande à l'utilisateur de saisir le nom du fichier source


printf("Entrez le nom du fichier source : ");
scanf("%s", source_filename);

// Ouvre le fichier source en mode lecture


source_file_ptr = fopen(source_filename, "r");

// Vérifie si le fichier source a été ouvert avec succès


if (source_file_ptr == NULL) {
printf("Impossible d'ouvrir le fichier source.\n");
return 1;
}

// Demande à l'utilisateur de saisir le nom du fichier destination


printf("Entrez le nom du fichier destination : ");
scanf("%s", dest_filename);
// Ouvre le fichier destination en mode écriture
dest_file_ptr = fopen(dest_filename, "w");

// Vérifie si le fichier destination a été ouvert avec succès


if (dest_file_ptr == NULL) {
printf("Impossible d'ouvrir le fichier destination.\n");
return 1;
}

// Copie le contenu du fichier source dans le fichier destination


while ((c = fgetc(source_file_ptr)) != EOF) {
fputc(c, dest_file_ptr);
}

// Ferme les fichiers


fclose(source_file_ptr);
fclose(dest_file_ptr);

printf("Le fichier %s a été copié dans le fichier %s.\n", source_filename, dest_filename);

return 0;
}

Exercice 4 :
#include <stdio.h>
#include <string.h>

// Structure pour stocker les informations d'un client


struct Client {
char nom[50];
char prenom[50];
int num_compte;
double solde;
};

// Fonction pour ajouter un nouveau client dans le fichier de comptes


void ajouter_client(FILE *fichier) {
struct Client client;

// Demande à l'utilisateur de saisir les informations du client


printf("Saisir le nom : ");
scanf("%s", client.nom);
printf("Saisir le prénom : ");
scanf("%s", client.prenom);
printf("Saisir le numéro de compte : ");
scanf("%d", &client.num_compte);
printf("Saisir le solde : ");
scanf("%lf", &client.solde);

// Ecrit les informations du client dans le fichier


fprintf(fichier, "%s %s %d %lf\n", client.nom, client.prenom, client.num_compte,
client.solde);

printf("Le client a été ajouté avec succès.\n");


}

// Fonction pour rechercher un client dans le fichier de comptes


void rechercher_client(FILE *fichier) {
int num_compte;
struct Client client;
int trouve = 0;

// Demande à l'utilisateur de saisir le numéro de compte du client à rechercher


printf("Saisir le numéro de compte du client à rechercher : ");
scanf("%d", &num_compte);

// Parcourt le fichier de comptes


while (fscanf(fichier, "%s %s %d %lf", client.nom, client.prenom, &client.num_compte,
&client.solde) != EOF) {
// Vérifie si le numéro de compte du client correspond à celui cherché
if (client.num_compte == num_compte) {
printf("Le client a été trouvé :\n");
printf("Nom : %s\n", client.nom);
printf("Prénom : %s\n", client.prenom);
printf("Numéro de compte : %d\n", client.num_compte);
printf("Solde : %.2lf\n", client.solde);
trouve = 1;
break;
}
}

if (!trouve) {
printf("Le client n'a pas été trouvé.\n");
}
}

int main() {
int choix;
FILE *fichier;
// Ouvre le fichier de comptes en mode lecture/écriture
fichier = fopen("comptes.txt", "a+");

if (fichier == NULL) {
printf("Impossible d'ouvrir le fichier de comptes.\n");
return 1;
}

// Boucle principale
while (1) {
printf("\nMenu :\n");
printf("1. Ajouter un client\n");
printf("2. Rechercher un client\n");
printf("3. Quitter\n");
printf("Choix : ");
scanf("%d", &choix);

switch (choix) {
case 1:
ajouter_client(fichier);
break;
case 2:
rechercher_client(fichier);
break;
case 3:
printf("Au revoir !\n");
fclose(fichier);
return 0;
default:
printf("Choix invalide.\n");
break;
}

Vous aimerez peut-être aussi