Lecture et ecriture d'un fichier en c. [Fermé]

Signaler
-
blurk
Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
-
bonjour. je voudrais avoir des renseignements sur la lecture d'un fichier . disons que j'ai un fichier du genre:
chose E
13.43 34.43 -68.90
43.56 98.32 32.65
plan A
13.43 34.43 -68.90
43.56 98.32 32.65
ect ect etc
comment je fais pour dire a l,ordi ke la premiére ligne et lé 2 otre ou se situe les chiffres sont ensemble et que dée qu'il rencontre un caractére (plan) cela veut dire que les coordonnées qui suivent correspondent a ce caractére. Le nombre de ligne de coordonnées (13.43 34.43 -68.90) né pas le méme, je peux avoir "chose ; qui a 2 lignes mé plan peu avoir 4 lignes) je sais pas si je suis assez claire mais je veux juste creer un autre fichier et tout ce que je sais c,est que je dois utiliser fscanf. merci de m'aider.

1 réponse

Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
156
bonjour
ici le problème ne consiste pas à "dire" à l'ordinateur ce qu'il doit lire
mais d'interpréter après lecture, c'est à dire formater ce qui a été lu.
stdio.h est suffisament riche pour fournir le mode de lecture
le plus approprié (par ligne, par caractère, par nombre d'octet prédéfini, voir même rechercher une balise)
il est certe plus aisé d'illustrer le propos, ce que nous allons faire:
après ouverture d'un fichier (voir fopen),
fread() /fwrite()// lit/ecrit une structure prédéfinie par l'utilisateur
fscanf()/fprintf()//lit/ecrit des variables formatés avec la balise %
fgets() /fputs// lit/ecrit une chaine de caractères
fgetc() /fputc() // lit/ecrit un caractère

pour de plus amples informations, il est vivement conseillé d'éditer stdio.h.
Il est possible de lire 3 lignes de caractères consécutives avec:
(fgets(chaine,fichier) 3X ou fscanf(fichier,"%s",chaine) 3X)
pour ensuite les manipuler
la longueur des lignes pouvant changer, l'usage de fwrite et fread n'est pas très indiqué.

KORDIALMAN
¤