goldorak2600+ a écrit :
c'est quoi la commande pour ouvrir le fichier en mode "w" etc...
je comprends rien a la programmation, maintenant je la met où cette ligne de commande?
|
Le traitement des fichiers en C se fait de la façon suivante
1) tu dois ouvrir ton fichier avec fopen(). Ca te renvoie un pointeur de type "FILE *" que tu stockes dans une variable de même type. Le mode d'ouverture dépend de ton besoin et peut être pris parmis les suivants
- lire le fichier => r
- lire le fichier et y écrire => r+
- écrire le fichier en le réinitialisant s'il n'est pas vide => w
- écrire le fichier en le réinitialisant s'il n'est pas vide et le lire => w+
- se placer à la fin du fichier pour continuer à y écrire => a
- se placer à la fin du fichier pour continuer à y écrire et pouvoir aussi le lire => a+
Si le fichier est de type "binaire" (son, image, vidéo, ... tout ce qui n'est pas du texte) il faut rajouter au mode choisi la lettre "b" (pas obligatoire sur Unix)
Si jamais l'ouverture ne se fait pas pour une raison quelconque, la fonction fopen() renvoie "NULL", la variable globale "errno" contient la cause de l'erreur et la fonction "strerror()" renvoie le texte correspondant à errno ce qui peut être utile
Exemple:
FILE *fp;
fp=fopen("c:\autoexec.bat", "r" );
if (fp == NULL)
{
printf("Erreur d'ouverture autoexec.bat pour la raison %s\n", strerror(errno)) => suite à donner à l'erreur => souvent arrêt du programme ou de la fonction puisque le fichier n'a pas été ouvert
} |
2) Une fois que le fichier a été ouvert dans le mode qu'il te faut, tu as un ensemble de fonctions (fgetc, fputc, fgets, fputs, fread, fwrite, fscanf, fprintf) qui te permettent de lire et d'écrire dans le fichier que tu manipules par son pointeur
Tu as aussi des fonctions spéciales de manipulation (fseek, ftell, feof)
Et une fonction particulière fflush() qui te permet de finaliser les écritures en attentes (ce n'est pas parce que tu écrits un caractère que ce caractère est réellement écrit sur le disque => ce serait trop long => les caractères écrits sont stockés dans une mémoire particulière qui n'est écrite sur disque que quand elle est pleine ou que c'est demandé par fflush => optimisation des accès disques)
3) Une fois que t'as fini de travailler, tu dois fermer le fichier par fclose()
=> http://fr.lang.free.fr/cours/Langa [...] e_v2.0.pdf page 103 et suivantes
Message édité par Sve@r le 16-06-2007 à 08:37:14
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.