« Programmation C++/Les fichiers » : différence entre les versions

Contenu supprimé Contenu ajouté
Tavernierbot (discussion | contributions)
m Bot: Retouches cosmétiques
Ligne 1 :
{{C++ débutant}}
== Le cours du chapitre 13 : Les fichiers ==
__TOC__
 
== Généralité sur les fichiers ==
*La règle générale pour créer un fichier est la suivante :
** il faut l'ouvrir en écriture.
Ligne 13 :
** on ferme le fichier.
 
== Fichiers textes ou binaires ==
Il existe 2 types de fichiers :
* les fichiers textes qui sont des fichiers lisibles par un simple éditeur de texte.
Ligne 24 :
Pour les amateurs de troll, n'hésitez pas à soutenir que cstdio est bien meilleur que fstream et vous pouvez entamer une discussion sans fin qui durera plusieurs mois. Succès garanti !
 
== Utilisation de cstdio ==
=== La fonction FILE * fopen(const char * filename,char * mode) ===
Cette fonction permet d'ouvrir un fichier en lecture ou en écriture. filename est un tableau de char contenant le fichier à écriture. Le paramètre mode permettra de spécifier le mode d'ouverture : lectute ou écriture, texte ou binaire.
** mode vaut "wb" pour ouvrir en écriture un fichier binaire. Si le fichier n'existe pas, il est créé.
Ligne 33 :
La fonction fopen envoie le pointeur NULL s'il n'a pas été possible d'ouvrir le fichier. Si tout s'est bien passé, elle renvoie un pointeur vers une structure FILE. Ce pointeur servira à écrire ou lire dans le fichier, ainsi qu'à le fermer.
 
=== La fonction fclose(FILE *) ===
cette fonction permet de fermer un fichier, qu'il soit ouvert en lecture ou en écriture. On passe en paramètre àcette fonction ne pointeur FILE * fourni par la fonction fopen(...).
 
=== Les fichiers binaires ===
* '''La fonction fwrite(const void * buffer, int size,int nb, FILE * f) :'''<br/>
Cette fonction écrit nb élements de size octets (soit nb*size octets) à partir du pointeur buffer (dans la RAM) vers le fichier f qui doit être ouvert en écriture. Il s'agit donc d'un transferts d'octets de la RAM dans un fichier.
Ligne 117 :
Dans ce programme, on ouvre le fichier binaire nommé toto.xyz en écriture. Si on a réussi à ouvrir le fichier, on lit un entier, un double un car, puis un tableau de 6 entiers et finalement un tableau de 10 char.
 
=== Les fichiers textes ===
* la fonction fprintf(FILE *f, const char * format,...)
La fonction fprintf permet d'écrire en mode texte dans un fichier différentes données. On n'oubliera pas de laisser un espace entre les données pour pouvoir les relire (ou un passage à la ligne). <br/>
Ligne 202 :
Dans ce programme, on ouvre le fichier binaire nommé toto.txt en lecture. Si on a réussi à ouvrir le fichier, on lit un entier, un double, un char, puis un tableau de 6 entiers et finalement une chaîne de caractères.
 
== Utilisation de fstream ==
=== Les fichiers textes ===
*'''La classe ofstream :'''<br/>
Il s'agit d'un fichier ouvert en écriture : pour créer un tel fichier il suffit d'appeler le constructeur qui a en paramètre le nom du fichier : par exemple '''ofstream f("toto.txt");'''.<br/>
Ligne 279 :
}
</pre>
=== Les fichiers binaires ===
*'''La classe ofstream :'''<br/>
Pour ouvrir en écriture un fichier binaire, il suffit d'appeler le constructeur qui a en paramètre le nom du fichier et le mode d'ouverture et fixer ce deuxième paramètre à ios::out | ios::binary: par exemple '''ofstream f("toto.xyz",ios::out | ios::binary);'''.<br/>