Académique Documents
Professionnel Documents
Culture Documents
MANIPULATIONS DES
FICHIERS TEXTES ET
BINAIRES EN C
Mme TEMIMI.O
Année Universitaire: 2023/2024
I. Définition
FILE *pointeur_fichier.
Exemple:
#define EOF -1
Syntaxe:
➢ Lecture/écriture formatée
1ére Génie Info A&B 12
IV. Manipulation d’un fichier en mode texte
IV.1. Caractère par caractère
Les deux principales fonctions de la bibliothèque stdio.h pour
lire et écrire dans un fichier texte caractère par caractère sont :
char c;
if(f!=NULL)
{ ...
/* utilisation de c */
}
1ére Génie Info A&B 14
IV. Manipulation d’un fichier en mode texte
IV.1. Caractère par caractère
int c;
Ouverture du fichier en
FILE *f1,*f2; mode lecture
Si on tape "Bonjour\n",
N.B: Cette fonction est similaire à scanf, sauf que fscanf lit les
données à partir d’un fichier alors que scanf les lit à partir du
clavier. 1ére Génie Info A&B 22
IV. Manipulation d’un fichier en mode texte
III.3. Lecture formatée :
Exemple:
Lecture à partir d'un fichier qui contient le matricule, le nom et le
salaire des employés (un employé par ligne dans le fichier)
int m; char s[50]; float a;
if(f!=NULL)
{
fscanf (f ,"%d%s%f" ,&m, s, &a);
printf("Matricule \t Nom \t Salaire\n");
printf("%d \t %s \t %.2f \n", m, s, a);
} 1ére Génie Info A&B 23
IV. Manipulation d’un fichier en mode texte
III.3. Ecriture formatée :
Syntaxe:
N.B: Cette fonction est similaire à printf, sauf que fprintf écrit
les données dans un fichier alors que printf les affiche sur
écran.
1ére Génie Info A&B 24
IV. Manipulation d’un fichier en mode texte
III.3. Ecriture formatée :
Exemple: Écriture du matricule, du nom et du salaire d'un
employé dans un fichier ouvert en mode ajout.
int m; char s[50]; float a;
FILE *f = fopen("Test.txt", "a");
if(f!=NULL)
{
printf("Donnez le matricule: "); scanf("%d",&m);
printf("Donnez le nom: "); scanf("%s",s);
printf("Donnez le salaire: "); scanf("%f",&a);
fprintf (f, "%d %s %f \n", m, s, a);
}
1ére Génie Info A&B 25
V. Manipulation d’un fichier en mode binaire
Un fichier binaire est considéré comme une suite d’octets
(exemple de fichier binaire: .bin, .dat, .exe,…)
typedef struct {
int mat ;
char nom[30];
float salaire;
} Employe;
Où:
Employe E ;
FILE*f;
f = fopen("entreprise.dat" , "wb");
if (f == NULL) {puts("Erreur de lecture"); getch(); return;}
printf(" Matricule:"); scanf("%d",&E.mat);
printf("Nom: "); gets(E.nom);
printf("Salaire: "); scanf("%f",&E.salaire);
fwrite(&E, sizeof(Employe), 1, f );
FILE *f;
f = fopen("entreprise.dat","rb");
…..
fseek( f , 0, SEEK_SET);
37
1ére Génie Info A&B
VII. Position courante du curseur:
Syntaxe:
Syntaxe:
Exemple:
FILE *f;
f = fopen( "entreprise.dat","rb");
…..
rewind( f );
1ére Génie Info A&B 39
IX. Renommer un fichier:
Syntaxe:
Exemple: