Le chat d'octets

Photo de Gribouille

Les fichiers

Gestion des fichiers


#include <stdio.h>
FILE *fp;  

fp : pointeur pointant sur une variable de type FILE.

Ouverture de fichier

Pour avoir accès à un fichier, on doit ouvrir le fichier à l'aide de la fonction fopen.

Activités possibles

Entrée - Sorties formatés sur les fichiers

Écriture formatée : fprintf

La fonction fprintf admet un nombre variable de paramètres. Son utilisation est la suivante :


fprintf(file_ptr, format, param_1, param_2,…,param_n); 

file_ptr : variable de type pointeur vers FILE qui repère le fichier sur lequel on veut écrire

Entrée formatée : fscanf

La fonction fscanf admet un nombre variable de paramètres. Son utilisation est la suivante :


fscanf(file_ptr, format, param_1, param_2,…,param_n);

fscanf lit le fichier défini par file_ptr en interprétant alors le format. Le résultat de cette interprétation a pour effet de mettre des valeurs dans les variables pointées par les différents paramètres.

Fonction seek

Cette fonction permet de se déplacer dans le fichier.


fseek(fp, déplacement, origine)

Origine

Fermeture d'un fichier

Une fois que nous avons fini d'utiliser le fichier, il faut le fermer. Pour fermer un fichier, nous utilisons la fonction fclose


fclose(fpp);

Fonction fread et fwrite

Ces fonctions sont utilisées lorsque l'on traite des fichiers binaires.

fonction fread


fread(buffer,taille,compte,fp_lit) 

fonction fwrite


fread(buffer,taille,compte,fp_écrit)    

buffer : adresse des octets du buffer à écrire

exemple

Nous allons écrire un programme qui saisit un nom de fichier, puis à qui l'on ajoute l'extension ".cvs". Ensuite nous créons un tableau de 400 valeurs et nous mettons le contenu du tableau dans le fichier.


#include <stdio.h>
	
void main()
{
	int tab[400];
	char Nom_Fichier[20];
	int i;
	FILE *fp;

	printf("Saisissez le nom du fichier : ");
	gets(Nom_Fichier);
	strcat(Nom_Fichier,".cvs");
	for(i=0; i< 400; i++)
		tab[i] = i;

	fp = fopen(tab,"w+");
	for(i=0; i<400; i++)
	fprintf(fp, "%d", tab[i]);
		
  fclose(fp);
}