Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1683 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Lecture d'un fichier de valeurs

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lecture d'un fichier de valeurs

n°760844
miles teg
aka blOp
Posté le 11-06-2004 à 21:17:30  profilanswer
 

Salut les gens,  
 
On a un petit souci de lecture de fichier, voilà la gueule du fichier :

Code :
  1. -1 1 200
  2. -1 1 200
  3. 0 0.327195 0.61837 0.841471 0.971938 0.995408 0.909297 0.723086 0.457273 0.14112


 
Etc .. les valeurs continuent, il y en 40 000.
 
Voilà le code censé les lire :
 

Code :
  1. pas calculdata(char filename[])
  2. {
  3.   int i,j,k;
  4.   FILE  *monfichier;
  5.   int xmin,xmax,ymin,ymax;
  6.   pas nb;
  7.  
  8.   monfichier = fopen(filename, "r" );
  9.   if (monfichier == NULL) {
  10.     printf ("Impossible d'ouvrir le fichier '%s'\n", filename);
  11.     exit(1);
  12.   }
  13.  
  14.   fscanf ( monfichier, "%d",&xmin);
  15.   fscanf ( monfichier, "%d",&xmax);
  16.   fscanf ( monfichier, "%d",&nb.nbpasx);
  17.   fscanf ( monfichier, "%d",&ymin);
  18.   fscanf ( monfichier, "%d",&ymax);
  19.   fscanf ( monfichier, "%d",&nb.nbpasy);
  20.   printf("%d %d %d %d %d %d\n",xmin, xmax, nb.nbpasx,ymin,ymax,nb.nbpasy);
  21.   double data[nb.nbpasx*nb.nbpasy];
  22.  
  23.   for ( i = 0 ; i < nb.nbpasx ; i ++ ){
  24.     for ( j = 0 ; j < nb.nbpasy ; j ++ ){
  25.       k = i* nb.nbpasy +j;
  26. /*       printf("%d\n",k); */
  27.       fscanf ( monfichier, "%lf",&data[k]);
  28.       printf("%lf\n" ,data[k]);
  29.       fclose(monfichier);
  30.      
  31. /*       printf("%d %d -> %g\n",i, j, data[k]); */
  32.     }
  33.   }
  34.   return nb;
  35. }


 
Voilà .. je suis un gros newbie en C et c'est un mini-projet à la con, mais ça bug et on trouve pas pourquoi, il lit les valeurs n'importe comment.
Si vous voyez un bug évident là-dedans, on est preneurs.

mood
Publicité
Posté le 11-06-2004 à 21:17:30  profilanswer
 

n°760858
Taz
bisounours-codeur
Posté le 11-06-2004 à 21:36:57  profilanswer
 

double data[nb.nbpasx*nb.nbpasy]; n'est pas valide en C ANSI
 
ça lit n'importe comment ? t'as qu'à pas fermer le fichier après chaque ligne
 
 
   fscanf ( monfichier, "%d",&xmin);
      fscanf ( monfichier, "%d",&xmax);
      fscanf ( monfichier, "%d",&nb.nbpasx);
      fscanf ( monfichier, "%d",&ymin);
      fscanf ( monfichier, "%d",&ymax);
      fscanf ( monfichier, "%d",&nb.nbpasy);
 
-> un seul fscanf :o dont tu __dois__ regarder la valeur de retour

n°761269
miles teg
aka blOp
Posté le 12-06-2004 à 14:33:02  profilanswer
 

En fait les premiers fscanf doivent lire les valeurs -1, 1 et 200 qui sont des paramètres pour ensuite dessiner une image de 200px*200px
Ensuite on lit les valeurs qu'on va attribuer (on envoie vers une fonction qui traduit en niveau de gris) à chaque pixel (les 40 000 valeurs du fichier).
 
Faudrait donc fermer le fichier uniquement à la fin ? Je vais prévenir les auteurs, on va vior ce que ça donne. Merci déjà pour la suggestion ;)

n°761274
miles teg
aka blOp
Posté le 12-06-2004 à 14:43:46  profilanswer
 

Hmm après test il semblerait que ça soit beaucoup mieux :lol:
 
Rétrospectivement, j'aurais du voir la connerie tout de suite .. Un an sans coder ça vide le cerveau.  
 
Merci bien !!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Lecture d'un fichier de valeurs

 

Sujets relatifs
[Java] Emplacement d'un fichier dans un JARErreur trop chiante en écrivant dans un fichier
problème de lecture de fichier texte[java pour les nuls] question gratuite sur la lecture d'un fichier
Ecrire un fichier txt codé en utf-8[awk/sed] Traitement du fichier de stats boinc...
[Servlet]Ouverture d'un fichier non HTML[PHP] Stocker plusieurs valeurs en une seule et les récupérer
Plus de sujets relatifs à : Lecture d'un fichier de valeurs


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR