Probleme de lecture de fichier...

Probleme de lecture de fichier... - C++ - Programmation

Marsh Posté le 26-05-2003 à 16:56:49    

Voila, j'ai mis le code suivant dans mon prog, logiquement il devrait s'arreter quand c'est la fin du fichier (image.pgm)
mais il continue ce con!!
Et j'ai pas d'erreur de compilation:
 
float image[120][160];
 
 FILE *pf=fopen("image0.pgm","r" );
 
 while (!feof(pf))
 {
  fscanf(pf,"%d",&image[i][j]);
  j++;
  if (j==160)
  {
   j=0;i++;
  }
 }
une idée???

Reply

Marsh Posté le 26-05-2003 à 16:56:49   

Reply

Marsh Posté le 26-05-2003 à 17:02:24    

faut pas utilser eof mais regarder le retour du scanf plutot
 
EDIT : et si tu a un fichier plus grand que 120*160 tu prevois quoi?


Message édité par polo021 le 26-05-2003 à 17:04:18
Reply

Marsh Posté le 26-05-2003 à 17:06:16    

polo021 a écrit :

faut pas utilser eof mais regarder le retour du scanf plutot
 
EDIT : et si tu a un fichier plus grand que 120*160 tu prevois quoi?


ok,
le fichier sera jamais plus grand que 120*160, car la taille est définie en const.

Reply

Marsh Posté le 26-05-2003 à 17:09:38    

hey, j'ai meme plsu besoin de faire la leçon :wahoo:

Reply

Marsh Posté le 26-05-2003 à 17:11:26    

j'ai eu un bon maitre ;)

Reply

Marsh Posté le 26-05-2003 à 17:13:18    

surtout que c'est du pgm, tu peux lire les dimensions dans le fichier

Reply

Marsh Posté le 26-05-2003 à 17:24:36    

++Taz a écrit :

surtout que c'est du pgm, tu peux lire les dimensions dans le fichier


c'est sur, mais vu que l'image provient d'une acquisition video, dont j'ai fixé la résolution....je me fait meme pas chier avec l'header de mon *.pgm!

Reply

Marsh Posté le 26-05-2003 à 17:26:35    

sbbtn a écrit :


c'est sur, mais vu que l'image provient d'une acquisition video, dont j'ai fixé la résolution....je me fait meme pas chier avec l'header de mon *.pgm!


et le jour où tu veux changer la résolution ?

Reply

Marsh Posté le 26-05-2003 à 17:27:09    

par contre le float et le %d je le sens pas trop...
 
tu peux gagner en mémoire: au lieu d'utiliser des int, tu peux utilsier des short (%hd), voir de unsigned char
 
edit: et ta pile te dira merci


Message édité par Taz le 26-05-2003 à 17:28:19
Reply

Marsh Posté le 26-05-2003 à 17:28:30    

hellbilly a écrit :


et le jour où tu veux changer la résolution ?


Je la changerais jamais, c juste pour tester une fonction, car là je suis chez moi et je n'ai pas accès à la caméra en question!!
 
Sinon, en fait, je ne m'en sorts pas:
est ce que quelqu'un pe me mettre le code avec le "scanf"
parce que je crois que j'ai mal saisi l'histoire...

Reply

Marsh Posté le 26-05-2003 à 17:28:30   

Reply

Marsh Posté le 26-05-2003 à 17:32:52    

scanf retourne le nombre d'elements correctement convertis, 1 dans ton cas, sauf problème.
 
par contre ton parcours l'est bizarre, j'aurais fait ça avec 2 for imbriqués

Reply

Marsh Posté le 26-05-2003 à 17:36:47    

Eh we, faut toujours tester les indices sinon  :hello: seg fault

Reply

Sujets relatifs:

Leave a Replay

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