Bonjour

Envoyé par
asmichou
....en lisant un peu partout j'ai lu que je devrais mettre les champs tous en meme temps a fin de remplir l 'enregistrement dans le fichier
Je n'ai pas trop compris ton poste cependant, je peux apporter ma petite contribution.
Pour manipuler un fichier à savoir écrire/lire/ouvrir/fermer, il faut faire appel à la structure du type FILE de l'entête stdio.h qui contient toutes les informations nécessaires te permettant de manipuler un fichier.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
#include <stdio.h> /* pour le type FILE */
#include <stdlib.h>
int main( void ){
FILE *pf = NULL; /* Déclaration du pointeur */
pf = fopen( "tst.txt", "r" ); /* ouverture du fichier & récupération du pointeur */
if( (NULL) == pf ){ /* contrôle si null échec ouverture du fichier */
/* Traiter l'erreur */
exit( EXIT_FAILURE );
}
/* Manipulation sur le fichier */
fclose( pf ); /* close du fichier aprés traitement */
pf = NULL;
return( EXIT_SUCCESS );
} |
FILE *fopen( const char *name, const char *mode );
La fonction a pour rôle d'ouvrir le fichier dont le name indique le nom ou le chemin absolu du fichier (/machin/dossier/tst.txt), avec un mode d'ouverture qui doit être précisé au par le second paramètre. La valeur de retour de la fonction renvoie un pointeur de type FILE* ou NULL en cas d'échec.
Est la fonction qui ferme le fichier après avoir effectué les différentes opérations sur le fichier. La valeur de retour de la fonction est 0 en cas de réussite ou EOF en cas d'erreur.
Quant aux modes d'ouverture, elle indique tout simplement le type d'opération que l'on souhaite effectuer sur le fichier :
"r" : Le fichier est ouvert uniquement en mode lecture sous réserve que le fichier existe & "r+" ouvre le fichier en lecture et l'écriture sous réserve que le fichier existe.
"w": Le fichier est ouvert s'il existe afin effectuer des opérations d'enregistrement dans le cas contraire, si le fichier n'existe pas, il est créé, mais attention ce mode écrase entièrement le contenue du fichier existant et le remplace par la nouvelle. "w+" effectue les opérations de lecture et écriture si le fichier existe, le contenu est supprimé dans le cas contraire le fichier est créé.
"a":Si le fichier existe pas il est créé mais par contre si le fichier existe, le contenue n'est pas effacé et l'enregistrement des nouvelles données sont effectués à la fin du fichier. "a+" crée le fichier s'il existe pas dans le cas contraire les données sont enregistrées en fin de fichier et les opérations de lecture sont également autorisées.
"b":Ce mode d'ouverture est utilisé pour effectuer des opérations en mode binaire. Si le fichier existe pas, le fichier n'est pas créé et la fonction renvoie NULL elle a également la particularité de renvoyer cette même valeur en cas d'erreur droit d'accès sur le fichier ou pour tout autre cas d'erreur.
un petit exemple résumons un peu ce que j'ai dit. J'admets que le code n'est pas très propre.
pour avoir plus de renseignement complémentaire sur la lecture-écritures, je te conseille le lien de @LittleWhite
à bientôt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
#include <stdio.h>
#include <stdlib.h>
#define SIZE 1024
int main( void ){
FILE *pf_In = NULL;
FILE *pf_Out = NULL;
char t_Data[SIZE];
pf_In = fopen( "source.c", "r" );
if( (NULL) == pf_In ){
perror("Erreur lecture du fichier\n");
exit( EXIT_FAILURE );
}else if( !(pf_Out = fopen( "source.txt", "w") ) ){
fclose( pf_Out );
pf_Out = NULL;
perror("Erreur création du fichier");
exit( EXIT_FAILURE );
}else{
while( fgets(t_Data, SIZE, pf_In) )
fputs( t_Data, pf_Out );
if( ((EOF) == fclose(pf_In)) || ( (EOF) ==fclose(pf_Out) ) ){
perror("Erreur close fichiers");
exit( EXIT_FAILURE );
}
pf_In = pf_Out = NULL;
}
return( EXIT_SUCCESS );
} |
Partager