Lecture en C de fichier de données formaté

Lecture en C de fichier de données formaté - C++ - Programmation

Marsh Posté le 05-01-2003 à 15:12:00    

Salut à tous et Bonne année !!
 
Je débute en C, et je suis confronté au problème suivant.
Je dois lire un fichier formaté de la manière suivante (9 lignes) et récupérer les valeurs en double float:
 
10.0 # valeur 1
3.141592 # évidemment, ce n'est qu'un exemple
...
 
en gros, une valeur, #, et un commentaire avec espaces
 
Je suis sûr que bcp d'entre vous ont déjà été confronté au problème et l'avez résolu avec brio.. De mon côté, j'ai fait de nombreux essais, mais je tourne en rond sans y arriver. :cry:
 
Merci par avance à tous ceux qui pourront m'aider
 
GB

Reply

Marsh Posté le 05-01-2003 à 15:12:00   

Reply

Marsh Posté le 05-01-2003 à 15:47:47    

Code :
  1. int n;
  2. char X;
  3. n=strcmp(X , #);
  4. while (n == TRUE )
  5. {
  6.     fgets( ton caractère);
  7.     X = ton caractère;
  8.     tu stockes le caractère ailleurs;
  9.    n=strcmp(X , #);
  10. }


 
 
c incomplet voire faux mais si qqun veut bien corriger.... :sarcastic:


---------------
Ma Carrière de Joueur : 114 pages, 25 ans, 1 PDF
Reply

Marsh Posté le 05-01-2003 à 16:03:09    

sseb22 a écrit :

Code :
  1. int n;
  2. char X;
  3. n=strcmp(X , #);
  4. while (n == TRUE )
  5. {
  6.     fgets( ton caractère);
  7.     X = ton caractère;
  8.     tu stockes le caractère ailleurs;
  9.    n=strcmp(X , #);
  10. }


 
 
c incomplet voire faux mais si qqun veut bien corriger.... :sarcastic:  

st une blague j'espere

Reply

Marsh Posté le 05-01-2003 à 16:09:33    

++Taz a écrit :

st une blague j'espere


 
je me disais bien que je captais rien à ce code :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 05-01-2003 à 16:13:28    

moi, non plus j'ai jamais vu ce langage  :sweat:
 
heureusement que je suis pas de mauvaise humeur en ce moment :sol:

Reply

Marsh Posté le 05-01-2003 à 16:14:44    

Oui ms tout ça, ça m'aide pas bcp...
 
je crois que je ne me suis pas fait comprendre....
 
A L'AAAAAAAAAAAAAIIIIIIIIIIIIIDDDDDDDDDDDEEEEEEEEEEEEE !!!!:crazy:
 
;-)
 
GB

Reply

Marsh Posté le 05-01-2003 à 16:15:16    

++Taz a écrit :

moi, non plus j'ai jamais vu ce langage  :sweat:
 
heureusement que je suis pas de mauvaise humeur en ce moment :sol:  


 
Ouais bon y a qqs erreurs et des trucs a revoir mais je suis sur qu'il a voulu aider.

Reply

Marsh Posté le 05-01-2003 à 16:23:43    

++Taz a écrit :

st une blague j'espere

tu as l'air si fort en C, je t'en prie, corrige ;)


---------------
Ma Carrière de Joueur : 114 pages, 25 ans, 1 PDF
Reply

Marsh Posté le 05-01-2003 à 16:29:29    

en debut de ligne
 
fscanf(stream, "%f", &f);
 
apres il te faut lire tous les caractères jusqu'à un '\n' ou EOF
 
 

Reply

Marsh Posté le 05-01-2003 à 16:39:54    

ou le "#"


---------------
Ma Carrière de Joueur : 114 pages, 25 ans, 1 PDF
Reply

Marsh Posté le 05-01-2003 à 16:39:54   

Reply

Marsh Posté le 05-01-2003 à 16:40:49    

si c un "\n" : c qu'on a pris trop de caractère
 
si c un EOF : on s'arrete
 
si c un "#" : on passe à la ligne suivante
 
 
 
 
c ça ?


---------------
Ma Carrière de Joueur : 114 pages, 25 ans, 1 PDF
Reply

Marsh Posté le 05-01-2003 à 16:47:10    

"\n" est une chaine.
 
 
bon:
 
soit une ligne
 
"1.23456    # a z   eeeee  rrr  t t y y y yu \n"
 
avec fscanf on essaye d'extraire unb flottant (retour de fscanf a verifier)
 
une fois cela fait, on cherche a passer à la ligne suivante. la solutionla plus simple c'est de progresser dans le flux en lisant caractère par caractère: si on tombe sur un '\n', c'est qu'on est arrivé au debut d'une nouvelle ligne, si on tombe sur EOF, c'est qu'on est en fin de fichier

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed