Vous êtes sur la page 1sur 14

Année académique : 2023-2024

TP Algorithmique

DEVOIR DE GROUPE : TD 7

Groupe 2 : Chargé de l’UE : Mr ANAKPA


TSEKPUIA Hervé Junior Chadrac
MOYE Essognim Isaac
MINZA Gnimdou Sylvain
NADJAK Moyinib Pierre Damien
PATOZE Eham
GNAMKOULAMBA Valentin
EDOH Bienvenue
KANFITINE Bouame Prisca
ADOM Essossolim Ezéchiel
ASSE EDOH Martin CTT-GM-S5
TOGBE mawumé shalom CTT-GC-S5
Exercice 1

// Programme C permentant de stocker le caractere "A" dans un fichier texte


#include<stdio.h>
main()
{
char c;
int x;
FILLE*fp=fopen("d:`\\ficher.txt","w");
if(fp!=NULL)
{
C='A';
x=fputc(c,fp);
if(x==EOF)
printf("echec du stockage du caractere %c dans fichier.txt!\n",c);
else printf("stockage reussi du caractere %c dans fichiere.txt\n",c);
fclose(fp);
} else printf("Echec de creation!");
}

// Programme C permettant de lire un caractere à partir du fichier texte


précédent
#include<stdio.h>
main()
{
int x;
FILE *fp=fopen("d:\\fichier.txt","r");
if(fp!=NULL)
{
x=fgetc(fp);
if(x==EOF) printf("Echec de lecture du caractere à partir du
fichier.txt!\n");
else printf("Lecture du caractere %c à partir du fichier.txt\n",x);
fclose(f);
} else printf("Echec d'ouverture!");
}

Exercice 2
#include<stdio.h>
main()
{
FILE *fp=fopen("fichier.txt","r");
if(fp=NULL) {
intc=fgetc(fp);
while(c!=EOF) {
// On peut mettre aussi while(!feof(fp))
putchar(c);
c=fgetc(fp);
}
fclose(fp);
}
else printf("Imposssible d'ouvrir le fichier!\n");
}

Exercice 3
#include <stdio.h>
int main() {
// Ouvrir le fichier en mode lecture
FILE *fichier = fopen("fichier.txt", "r");

// Vérifier si l'ouverture du fichier a réussi


if (fichier == NULL) {
printf("Erreur lors de l'ouverture du fichier.\n");
return 1; // Quitter le programme avec un code d'erreur
}
// Lire le contenu du fichier caractère par caractère
printf("Contenu du fichier :\n");
int caractere;
while ((caractere = fgetc(fichier)) != EOF) {
printf("%c", caractere);
}
// Fermer le fichier
fclose(fichier);
return 0; // Quitter le programme avec succès
}

Exercice 4
#include<stdio.h>
main()
{
FILE * fp=fopen("fichier.txt","w");
int i;
char c;
int x;
for (i=1; i<=5; i++){
printf("Donner un caractere:");
c=getchar();
getchar();
x=fputc(c,fp);
if(x==EOF) printf("Echec de stockage du caractere %c dans
fichier.txt!\n",c);
else printf("stckage réussi du caractere %c dans fichier.txt!\n",c);
}
fclose(fp);
}

Exercice 5
#include<stdio.h>

int main()
{
FILE *fp=fopen("ficher.txt", "w");
int i;char ch[10]; int x;
for (i=1;i<=5;i++) {
printf("Donner une chaîne de caractères :");
gets(ch) ;
x=fputs(ch,fp) ;
if(x==EOF)
printf("Échec de stockage de la chaîne de caractères %s dans
fichier.txt !\n",ch);
else printf("stockage réussi de la chaîne de caractères %s dans
fichier.txt.\n",ch);

}
fclose(fp);
}

Exercice 6
#include <stdio.h>

int main()
{
FILE *fichier = fopen("fichier.txt", "w");
if (fichier != NULL) {
char c = getchar();
fputc(c, fichier);
fclose(fichier);
}
return 0;
}
Exercice 7
#include<stdio.h>
main()
{
FILE * fp=fopen("fichier.txt","w");
int i;
char ch[10];
int x;
printf("Donner une chaine de carectere à stocker dans fichier.txt:");
gets(ch);
for(i=0;i<strlen(ch);i++){
x=fputc(ch[i];fp);
if(x==EOF)
printf("Echec de stockage du caractere %c dans fichier.txt\n",ch[i]);
}
fclose(fp);
}

Exercice 8
#include<stdio.h>
void lire_fichier()
{
FILE*fp=fopen("ficher.txt","r");
if(fp!=NULL) {
char tmp[12];
char*ch=fgets(tmp,12,fp);
while(!feof(fp)) {
printf("%s",tmp);
ch=fgets(tmp,12,fp);
}
printf("%s",tmp);
fclose(fp);
}
else printf("Impossible d'ouvrir le fichier!\n");
}
void creer_fichier()
{
FILE*fp=fopen("fichier.txt","w");
int i;
char ch[10];
int x;
char c;
do{
printf("Dnnez une chaine de caractere:");
sc anf("%s",ch);
if(x==EOF)
printf("Echec de stockage de caracteres %s dans fichier.txt!\
n",ch);
else prntf("Stockage réussi de la chaine de caractere %s dans
fochier.txt\n",ch);
printf("voulez-vous ajouter uneautre chaine o/n ?");
getchar();
c=getchar();getchar();
} while(c!='n');
fclose(fp);
}
void Ajouter_fichier()
{
FILE*fp=fopen("ficher.txt","a");
int i;
char ch[10];
int x;
char c;
do{
printf("Donnez une chaine de caracteres:");
scanf("%s",ch);
x=fputs(ch,fp);
if(x==EOF)
printf("Echec de stckage de la chaine de caractere %s dans
fichier.txt!\n,ch");
else printf("Stockage de la chaine de caracteres s dnans un
fichier.txt\n",ch);
printf("voulez-vous ajouter une autre chaine o/n ?");
getchar();
c=getchar();
getchar();
} while(c!='n');
fclose(fp);
}
main()
{
int choix;
do{
printf("\nDonnez votre choix:\n\t1-Lirefichier,\t2-créer fichier,");
printf("\n\t3-Ajouter à u fichier et \n\t4-Quitter le programme\n");
scanf("%d",&choix);
switch(choix){
case1: Lire_fichier();break;
case2: Creer_fichier();break;
case3: Ajouter_fichier();break;
case4: break;
default: printf("choix incorrect!!");
}
} while(choix!=4);
}
Exercice 9
#include <stdio.h>

int main() {
// Déclarer une variable pour stocker le nombre réel
float nombreReel;

// Demander à l'utilisateur d'entrer un nombre réel


printf("Entrez un nombre réel : ");

// Lire le nombre réel depuis le clavier


scanf("%f", &nombreReel);

// Ouvrir le fichier en mode écriture


FILE *fichier = fopen("reels.txt", "w");

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


if (fichier != NULL) {
// Écrire le nombre réel dans le fichier de manière formatée
fprintf(fichier, "%f", nombreReel);

// Fermer le fichier
fclose(fichier);

// Informer l'utilisateur que le nombre a été stocké dans le fichier


printf("Le nombre réel a été stocké dans reels.txt\n");
} else {
// Afficher un message d'erreur si le fichier n'a pas pu être ouvert
printf("Erreur lors de l'ouverture du fichier\n");
}

return 0;
}

Exercice 10
#include <stdio.h>

int main()
{
FILE *fp = fopen("reel.txt", "r");
float f;
int x =fscanf(fp,"%f",&f);
if(x !=EOF)
printf("le nombre lu à partir du fichier est:%f\n",f);
else
printf("Echec de lecture à partir du fichier !\n");
fclose(fp);
return 0;
}

Exercice 11
#include <stdio.h>
#include <stdlib.h>

struct Employe {
int id;
char prenom[50];
char nom[50];
};

int main()
{
FILE *fichier;
struct Employe emp;
fichier = fopen("employes.txt", "w");

if (fichier == NULL)
{
perror("Erreur lors de l'ouverture du fichier");
exit(EXIT_FAILURE);
}
printf("Saisir les informations des employes :\n");
printf("Utilisez Ctrl+D (Unix/Linux) ou Ctrl+Z (Windows) pour terminer la
saisie.\n");

while (1)
{
printf("Numero de l'employe : ");
if (scanf("%d", &emp.id) != 1) break;
printf("Nom : ");
scanf("%s", emp.nom);

printf("Prenom : ");
scanf("%s", emp.prenom);
fprintf(fichier, "%d %s %s\n", emp.id, emp.nom, emp.prenom);
}
fclose(fichier);
fichier = fopen("employes.txt", "r");

if (fichier == NULL)
{
perror("Erreur lors de l'ouverture du fichier en mode lecture");
exit(EXIT_FAILURE);
}
printf("\nInformations des employes stockees dans le fichier :\n");
while (fscanf(fichier, "%d %s %s", &emp.id, emp.nom, emp.prenom) == 3)
{
printf("Numero: %d, Nom: %s, Prenom: %s\n", emp.id, emp.nom,
emp.prenom);
}
fclose(fichier);

return 0;
}

Exercice 12
#include<stdio.h>
main()
{
FILE*fp=fopen("bloc.txt","w");;
size_t nbe=fwrite("bonjour",7,1,fp);
if(nbe==1)
printf("Stockage avec succès\n");
else
printf("Echec de stockage dans le fichier bloc.txt !\n");
fclose(fp);
}

Exercice 13
#include<stdio.h>
main()
{
FILE*fp=fopen("bloc.txt","r");
char ch[8];
size_t nb1=fread(ch,7,1,fp);
if(nb1==1)
printf("La chaine lue est:%s\n",ch);
else
printf("Echec de lecture à partir du fichier bloc.txt !\n");
fclose(fp);
}
Exercice 14
#include<stdio.h>
int main() {
char nomFichier[50];
FILE *fichier;
// Demander à l'utilisateur de saisir le nom du fichier
printf("Entrez le nom du fichier (maximum 49 caractères) : ");
scanf("%s", nomFichier);
// Ouvrir le fichier en mode écriture
fichier = fopen(nomFichier, "wb");
// Vérifier si l'ouverture du fichier a réussi
if (fichier == NULL) {
printf("Erreur lors de l'ouverture du fichier.\n");
return 1; // Quitter le programme avec un code d'erreur
}
int nombre;
int bloc[10]; // Bloc de 10 entiers
// Demander à l'utilisateur de saisir les nombres entiers
printf("Entrez une suite de nombres entiers (0 pour terminer) :\n");
int i = 0;
while (1) {
scanf("%d", &nombre);
// Vérifier si l'utilisateur a entré 0 pour terminer la saisie
if (nombre == 0) {
break;
}
// Ajouter le nombre au bloc
bloc[i] = nombre;
i++;
// Si le bloc est plein, écrire le bloc dans le fichier
if (i == 10) {
fwrite(bloc, sizeof(int), 10, fichier);
i = 0; // Réinitialiser l'indice du bloc
}
}
// Si des nombres restent dans le dernier bloc, les écrire dans le fichier
if (i > 0) {
fwrite(bloc, sizeof(int), i, fichier);
}
// Fermer le fichier
fclose(fichier);
printf("Données enregistrées avec succès dans le fichier %s.\n",
nomFichier);
return 0;
}
Exercice 15
#include <stdio.h>

int main() {
char nomFichier[50];
printf("Entrez le nom du fichier : ");
scanf("%s", nomFichier);
FILE *fichier;
fichier = fopen(nomFichier, "rb");
if (fichier == NULL) {
fprintf(stderr, "Erreur lors de l'ouverture du fichier.\n");
return 1;
}
int blocSize = 4;
int buffer[blocSize];
while (fread(buffer, sizeof(int), blocSize, fichier) == blocSize) {
printf("Bloc lu : ");
for (int i = 0; i < blocSize; ++i) {
printf("%d ", buffer[i]);
}
printf("\n");
}
fclose(fichier);
return 0;
}

Exercice 16
#include<stdio.h>
typedef struct employe {
int num;
char nom[10],prenom[10];

}Employe;
main()
{
Employe e;char c;size_t nbe, nbl;FILE * fp;
//stockage (écriture) des employés
fp=fopen("employes.blc ", "w");
do{
printf("Donnez le numéro de l' employé :");
scanf("%d",&e.num);
printf("Donnez le prénom de l' employé :");
scanf("%s", e.prenom);
nbe=fwrite(&e,sizeof(e),1,fp);
if(nbe==1) printf("stockage avec succès.\n");
else printf("Échec de stockage dans employes.blc !\n");
printf("voulez-vous ajouter un autre employé o\n ?");
getchar();
c=getchar(); getchar();

} while(c !='n');
fclose(fp);
//Affichage (lecture) des employés
fp= fopen("employes.blc" ,"r");
puts("voici la liste des employés stockés dans le fichier :");
nbl=fread(&e,sizeof(e),1,fp);
if(nbl==1) printf("\t%d %s %s\n",e.num,e.nom,e.prenom );
while(!feof(fp) && nbl){
nbl=fread(&e,sizeof(e),1,fp);
if(nbl==1) printf("\t%d %s %s\n",e.num,e.nom,e.prenom );
}
fclose(fp);
}

Exercice 17
#include<stdio.h>
typedef enum feu{vert, orange, rouge} Feu;
int num;
main()
{
puts("Entrez un numéro de feu entre 0 et 2:");
scanf("%d",&num);
switch(num)
{
case vert:puts("Feu vert");
break;
case orange: puts("Feu orange");
break;
case rouge: puts("Feu rouge");
break;
default: puts("Choix incorrect");
}
}

Exercice 18
#include<stdio.h>
typedef struct employe{
int num;
char nom[10],prenom[10];
}Employe;
Employe T[5];
main(){
FILE *fp; int i;
fp=fopen("employes.blc","w");
for (i=0;i<5;i++){
printf("Donnez le numéro de l'employé %d:",i);
scanf("%d",&T[i].num);
printf("Donnez le nom de l'employé %d:",i);
scanf("%d",&T[i].nom);
printf("Donnez le prenom de l'employé %d:",i);
scanf("%d",&T[i].prenom);
}
//stockage(écriture) du tableau des employés dans un ficher binaire
fwrite(T,sizeof(Employe),5,fp);
fclose(fp);
//Affichage (lecture) du ficher des employés
fp=fopen("employes.blc","r");
fread(T,sizeof(Employe),5,fp);
for(i=0; i<5; i++){
printf("voici les informations de l'employer %d:\n",i);
printf("\tNum:%d,Nom:%s,prénom:%s\n",T[i].num,T[i].nom,T[i].prenom);
}
fclose(fp);

Exercice 19
#include <stdio.h>
#include <string.h>

struct Employe {
char nom[100];
// Autres champs...
};

int main() {
char nomRecherche[100];
struct Employe employe;
FILE *fichier = fopen("fichier.bin", "rb");
if (fichier != NULL) {
printf("Entrez le nom de l'employé à rechercher : ");
fgets(nomRecherche, 100, stdin);
while (fread(&employe, sizeof(struct Employe), 1, fichier)) {
if (strcmp(employe.nom, nomRecherche) == 0) {
// Afficher les informations de l'employé...
break;
}
}
fclose(fichier);
}
return 0;
}

Exercice 20
#include <stdio.h>
int main() {
char nomFichier[50];
FILE *fichier;
// Demander à l'utilisateur de saisir le nom du fichier
printf("Entrez le nom du fichier (maximum 49 caractères) : ");
scanf("%s", nomFichier);
// Vérifier si l'ouverture du fichier a réussi
if (fichier == NULL) {
printf("Erreur lors de l'ouverture du fichier.\n");
return 1; // Quitter le programme avec un code d'erreur
}
int position;
int nombreLu;
// Demander à l'utilisateur de saisir la position du nombre à lire
printf("Entrez la position du nombre à lire (en partant de 0) : ");
scanf("%d", &position);
// Se positionner dans le fichier à la position spécifiée
fseek(fichier, position * sizeof(int), SEEK_SET);
// Lire l'entier à partir de la position spécifiée
if (fread(&nombreLu, sizeof(int), 1, fichier) == 1) {
printf("Nombre lu à la position %d : %d\n", position, nombreLu);
} else {
printf("Erreur lors de la lecture du nombre à la position spécifiée.\
n");
}
// Fermer le fichier
fclose(fichier);
return 0;
}

Vous aimerez peut-être aussi