(lire dans un fichier ascii) pourquoi mon programme ne marche pas ?

pourquoi mon programme ne marche pas ? (lire dans un fichier ascii) - C++ - Programmation

Marsh Posté le 27-12-2002 à 22:23:58    

le "hello" au début de la fonction display ne s'affiche pas a l'execution !
qu'est-ce que je dois faire ?
 
 
#include <GL/glut.h>
 #include <stdio.h>
 #include <iostream.h>
 #include <string.h>
 #include <conio.h>
 
 #define nb_vertices 697
 #define nb_elements_ligne 3
 
 
 
 
 void display (void)
 {
   cout << "hello" ;
   
char tmp [500] ;  //c le tableau qui va aider a compter le nombre de caractères avant les vertices
     
   char chaine []= "*MESH_VERTEX    0 " ;  
     
   float tab_vertices [nb_vertices] ;
     
   long position = 0 ;
     
   int i ;
   
   FILE *cool ;                 //pointeur sur le fichier cool
   cool = fopen("cool.ase", "r" ) ; //ouverture du fichier cool
             
   fseek (cool, position, SEEK_SET) ; //positionnement au début du fichier
   do  
   {
       fscanf (cool, "%s", tmp) ;  // passage en revue de toutes les chaines pour noter la position avec ftell  
       position= ftell (cool) ;
     
   }
   while (strcmp (tmp, chaine) != 0) ;
   
     
   fseek (cool, position, SEEK_SET) ;
   
   for (i = 0 ; i <= 2 ; i++)
   {
      fscanf(cool, "%f", &tab_vertices[i]);
   position= ftell (cool) ;
   fseek (cool, position, SEEK_SET) ;
     
   }
   fclose (cool) ;
   
   cout << tab_vertices [0] ; //test
   
     
     
 }
 
 
 void main (void)
 
 {
   display () ;
   getch () ;
   
 }

Reply

Marsh Posté le 27-12-2002 à 22:23:58   

Reply

Marsh Posté le 27-12-2002 à 22:51:58    

C'était utile de supprimer le premier topic ? Tu risques pas d'avoir des masses de réponses positives avec ce genre de choses :o


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

Marsh Posté le 27-12-2002 à 22:52:45    

antp a écrit :

C'était utile de supprimer le premier topic ? Tu risques pas d'avoir des masses de réponses positives avec ce genre de choses :o


Ce n'est peut etre pas volontaire, tu peux toujours restaurer l'ancien tu sais !

Reply

Marsh Posté le 27-12-2002 à 22:58:20    

samuelp a écrit :


Ce n'est peut etre pas volontaire, tu peux toujours restaurer l'ancien tu sais !


 
Tu deviens lourd toi :p
je sais que je peux restaurer l'autre, et ça m'étonnerais que ce ne soit pas volontaire...


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

Marsh Posté le 27-12-2002 à 22:59:39    

laisser ce topic pourrie s'abymer comme il se doit  :jap:


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 27-12-2002 à 23:00:29    

antp a écrit :


 
Tu deviens lourd toi :p
je sais que je peux restaurer l'autre, et ça m'étonnerais que ce ne soit pas volontaire...


 
moi zaussi :O

Reply

Marsh Posté le 27-12-2002 à 23:09:02    

Taz@PPC a écrit :

laisser ce topic pourrie s'abymer comme il se doit  :jap:

tu devrais prendre des vacances. tu fais vraiment chier.

Reply

Marsh Posté le 27-12-2002 à 23:11:26    

youdontcare a écrit :

tu devrais prendre des vacances. tu fais vraiment chier.

:pfff: je veux pas recommencer s'il eu plé


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 28-12-2002 à 11:21:26    

personne veut m'aider ?

Reply

Marsh Posté le 28-12-2002 à 11:46:39    

airseb a écrit :

  fseek (cool, position, SEEK_SET) ;
   
   for (i = 0 ; i <= 2 ; i++)
   {

que vaut position et donc, où vas-tu te retrouver dans le fichier ?

Reply

Marsh Posté le 28-12-2002 à 11:46:39   

Reply

Marsh Posté le 28-12-2002 à 11:51:05    

airseb a écrit :

personne veut m'aider ?


Code :
  1. cout << "hello" << endl;


 :o
 
ca valait vraiment la peine de repondre :??:


Message édité par MrTonio le 28-12-2002 à 11:51:28

---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 28-12-2002 à 11:53:10    

youdontcare a écrit :

que vaut position et donc, où vas-tu te retrouver dans le fichier ?


 

Code :
  1. long position = 0 ;


il a mis ca... au debut du prog mais de toute facon je vois pas trop l interet du fseek ....


Message édité par MrTonio le 28-12-2002 à 11:55:09

---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 28-12-2002 à 11:54:39    

et il y a une boucle derrière qui modifie sa valeur.

Reply

Marsh Posté le 28-12-2002 à 11:56:40    

oula j avé pas fé gaffe mais il replace le pointeur dans le fichier au meme endroit k il est sensé etre  :heink:  
pas tres catholique tout ca  :fou:


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 28-12-2002 à 12:08:59    

j'ai modifié le prog pasqu'il y avait une petite erreur mais ça marche tjs pas  :(  
 

Code :
  1. #include <stdio.h>
  2.   #include <iostream.h>
  3.   #include <string.h>
  4.   #include <conio.h>
  5.  
  6.   #define nb_vertices 697
  7.   #define nb_elements_ligne 3
  8.  
  9.  
  10.  
  11.  
  12.   void display ()
  13.   {
  14.     char tmp [100] ;  //c le tableau qui va aider a compter le nombre de caractères avant les vertices
  15.      
  16.     char chaine [100]= "*MESH_VERTEX" ;   
  17.     float tab_vertices [nb_vertices] ;
  18.      
  19.     long position = 0 ;
  20.      
  21.     int i ;
  22.    
  23.     FILE *cool ;                 //pointeur sur le fichier cool
  24. cool = fopen("cool.ase", "r" ) ; //ouverture du fichier cool
  25.     fseek (cool, position, SEEK_SET) ; //positionnement au début du fichier
  26.    
  27. do
  28. {
  29.  do 
  30.  {
  31.   fscanf (cool, "%s", &tmp) ;  // passage en revue de toutes les chaines pour trouver "*MESH_VERTEX"
  32.   position= ftell (cool) ;
  33.   fseek (cool, position, SEEK_SET) ;
  34.  }
  35.  while (strcmp (tmp, chaine) != 0) ; // s'arrete quand tmp == "*MESH_VERTEX"
  36.  fscanf (cool, "%d", &tmp) ; //cherche le 0 qui suit "*MESH_VERTEX"
  37.  position= ftell (cool) ;
  38.  fseek (cool, position, SEEK_SET) ;
  39.     }
  40. while (tmp != 0) ;  // 0 car après "*MESH_VERTEX" on a le chiffre 0
  41.      
  42.    
  43.     for (i = 0 ; i <= 2 ; i++)
  44.     {
  45.        fscanf(cool, "%f", &tab_vertices[i]);
  46.     }
  47.     fclose (cool) ;
  48.    
  49.     cout << tab_vertices [0] ; //test
  50.      
  51.   }
  52.  
  53.   void main (void)
  54.  
  55.   {
  56.     display () ;
  57.     getch () ;
  58.    
  59.   }


 
 
sinon dans mon fichier j'ai ça :
 
*MESH_VERTEX    0 68.2882 -28.6895 98.6747
 
et je veux lire les flottants.


Message édité par airseb le 28-12-2002 à 12:30:44
Reply

Marsh Posté le 28-12-2002 à 12:46:15    

Code :
  1. #include <stdio.h>
  2.  
  3. void display()
  4. {
  5. float tab_vertices[3];
  6. FILE *cool;
  7. if ((cool = fopen("cool.ase", "r" )) == NULL)
  8.  return ;
  9. while (!feof(cool))
  10. {
  11.  fscanf(cool, "*MESH_VERTEX    0 %f %f %f\n", &tab_vertices[0], &tab_vertices[1], &tab_vertices[2]);
  12.  printf("%.4f %.4f %.4f\n", tab_vertices[0], tab_vertices[1], tab_vertices[2]);
  13. }
  14. fclose(cool);
  15. }


 
bon walla  :D  
par contre faut pas d erreur de syntaxe dans le fichier  :whistle:


Message édité par MrTonio le 28-12-2002 à 12:53:44

---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 28-12-2002 à 13:20:43    

tu peux m'expliquer cette ligne ste plait? je pige pas bien
 
fscanf(cool, "*MESH_VERTEX    0 %f %f %f\n", &tab_vertices[0], &tab_vertices[1], &tab_vertices[2]);
 
pourquoi t'as mis *MESH_VERTEX    0 entre guillemets ? et surtout pourquoi tu l'a mis a cet endroit là (c peut être simple mais fscanf c nouveau pour moi)

Reply

Marsh Posté le 28-12-2002 à 13:27:39    

bah je cherche la "phrase" : "*MESH_VERTEX    0 %f %f %f\n" dans le fichier tout simplement, c le formatage de ta ligne
et j extrais les nombres de la phrase ... :)
 
mais t as essayé :??: ca marche :??:


Message édité par MrTonio le 28-12-2002 à 13:28:14

---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 28-12-2002 à 13:37:36    

MrTonio a écrit :

bah je cherche la "phrase" : "*MESH_VERTEX    0 %f %f %f\n" dans le fichier tout simplement, c le formatage de ta ligne
et j extrais les nombres de la phrase ... :)
 
mais t as essayé :??: ca marche :??:


 
ça fé une boucle infinie, et les valeurs sont fausses : ça me met des flottants (tjs le même) avec 4 zéros après la virgule  :(

Reply

Marsh Posté le 28-12-2002 à 13:47:22    

airseb a écrit :


 
ça fé une boucle infinie, et les valeurs sont fausses : ça me met des flottants (tjs le même) avec 4 zéros après la virgule  :(  


 
bah respecte bien la syntaxe  :D  
"*MESH_VERTEX" + 4 espaces + "0" + 1 espace + chiffre1 + 1 espace + chiffre2 + 1 espace + chiffre3 + "\n"


Message édité par MrTonio le 28-12-2002 à 13:47:50

---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 28-12-2002 à 16:14:44    

ça marche pas  :cry:

Reply

Marsh Posté le 28-12-2002 à 16:29:46    

j'ai fait un nouveau programme qui ne marche pas non plus, pouvez m'aidez a trouver les erreurs ?
la compilation passe mais après j'ai le message suivant :
"lecture_ase.exe a rencontré un problème et doit fermer."
please help !  :cry:  
 

Code :
  1. #include <stdio.h>
  2.   #include <iostream.h>
  3.   #include <string.h>
  4.   #include <conio.h>
  5.  
  6.   #define nb_vertices 697
  7.  
  8.  
  9.  
  10.  
  11.   void display ()
  12.   {
  13.     char tmp [100] ;
  14.     int temp [697] ; 
  15.     char chaine [100] ;
  16.     strcpy (chaine , "*MESH_VERTEX" ) ;
  17.     float tab_vertices [nb_vertices] ;
  18.      
  19.    
  20.    
  21.     FILE *cool ;                 //pointeur sur le fichier cool
  22. if ((cool = fopen("cool.ase", "r" )) == NULL)
  23. {
  24.         return ;
  25. }
  26.     do
  27. {
  28.  fscanf (cool, "%s || %c", tmp ) ;
  29. }
  30. while (strcmp (chaine, tmp) != 0) ;
  31. fscanf (cool, "%d %f %f \n %f", temp ,&tab_vertices[0], &tab_vertices[1], &tab_vertices [2]) ;
  32.     fclose (cool) ;
  33.    
  34.     cout << tab_vertices [0] << endl ;//test   
  35.   }
  36.  
  37.  
  38.   void main (void)
  39.  
  40.   {
  41.     display () ;
  42.     getch () ;
  43.    
  44.   }


Message édité par airseb le 28-12-2002 à 16:56:46
Reply

Marsh Posté le 28-12-2002 à 19:45:55    

hey tu compile avac koi ton truc :??:
aske chez moa ca marche ce ke j ai fé ! :cry:


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 28-12-2002 à 19:53:54    

MrTonio a écrit :

hey tu compile avac koi ton truc :??:
aske chez moa ca marche ce ke j ai fé ! :cry:  


 
avec visual c++, au lieu d'aller dans project, je vais dans file => C++ source file, mais ça dois marcher non ?

Reply

Marsh Posté le 28-12-2002 à 19:58:07    

airseb a écrit :


 
avec visual c++, au lieu d'aller dans project, je vais dans file => C++ source file, mais ça dois marcher non ?


 
créer un projet Win32 vide, ajoute le fichier .c
compile et normalement c bon


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 28-12-2002 à 20:16:25    

MrTonio a écrit :


 
créer un projet Win32 vide, ajoute le fichier .c
compile et normalement c bon


 
ça marche pas, avant ça affichais des valeurs fausses, maintenant ça affiche plus rien !  :(  
 
c mon compilo qui déconne ou c moi qui ai fait une mauvaise manoeuvre ?

Reply

Marsh Posté le 28-12-2002 à 20:29:51    

Code :
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <conio.h>
  4.  
  5. void display()
  6. {
  7. float tab_vertices[3];
  8. FILE *cool;
  9. if ((cool = fopen("cool.ase", "r" )) == NULL)
  10.  return ;
  11. while (!feof(cool))
  12. {
  13.  if (fscanf(cool, "*MESH_VERTEX    0 %f %f %f\n", &tab_vertices[0], &tab_vertices[1], &tab_vertices[2]) == 3)
  14.   printf("%.4f %.4f %.4f\n", tab_vertices[0], tab_vertices[1], tab_vertices[2]);
  15.  else
  16.   fgetc(cool);
  17. }
  18. fclose(cool);
  19. }
  20. int main()
  21. {
  22. display();
  23. getch();
  24. return (0);
  25. }


walla normalement c bon ;)


---------------
WoIP - Video and Voice over IP -  http://www.woip.net/
Reply

Marsh Posté le 01-01-2003 à 14:42:25    

C++ powa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ok je sors: bonne année


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le 07-01-2003 à 20:17:51    

Taz@PPC a écrit :

C++ powa
ok je sors: bonne année


Ca fait plusieurs topics ou tu n'interviens que pour pondre des conneries qu'on me signale (a supposer que les divers pseudos Taz se rapportent tous a toi).
Les previsions de Modéo-France: Si la tendance persiste, un ban devrait parcourir ce forum.
A+,


Message édité par gilou le 07-01-2003 à 20:18:44

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-01-2003 à 20:26:05    

gilou a écrit :


Ca fait plusieurs topics ou tu n'interviens que pour pondre des conneries qu'on me signale (a supposer que les divers pseudos Taz se rapportent tous a toi).
Les previsions de Modéo-France: Si la tendance persiste, un ban devrait parcourir ce forum.
A+,


 
euh désolé si les gens confondent le C et le C++. J'estime que c'est leur rendre service que de leur enseigner ce fait. Si t'es contre ça, alors ban moi direct. Si certains se plaignent, ils n'ont qu'à se plaindre aupres de moi et pas allez pleurer aupres des modos.
Sur ce topic, c'est vrai que j'ai pas apporté grand chose. Mais c'est l'exception qui confirme... sur chaque topic auxquels je participe, même si je gueule, j'apporte toujours des éléments de réponses et des conseils.

Reply

Marsh Posté le 07-01-2003 à 20:29:24    

++Taz a écrit :


 
euh désolé si les gens confondent le C et le C++. J'estime que c'est leur rendre service que de leur enseigner ce fait. Si t'es contre ça, alors ban moi direct. Si certains se plaignent, ils n'ont qu'à se plaindre aupres de moi et pas allez pleurer aupres des modos.
Sur ce topic, c'est vrai que j'ai pas apporté grand chose. Mais c'est l'exception qui confirme... sur chaque topic auxquels je participe, même si je gueule, j'apporte toujours des éléments de réponses et des conseils.


C'est ce que je disais en privé a la personne qui m'a signalé une kyrielle de topics ou tu intervenais.

Citation :

meme s'il est chiant dans ses interventions, il dit pas que des conneries lorsque ca releve du domaine technique.


Mais bon, faut te calmer un peu: Si tu as envie de raler, il y a  
1) BlaBla@prog
2) BlaBla.
Un peu de courtoisie dans tes interventions dans les topics techniques ne ferait pas de mal.
A+,


Message édité par gilou le 07-01-2003 à 20:30:05

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-01-2003 à 20:32:59    

ben c'est bien connu que je démarre au quart de tour. Je t'assure que depuis un certain temps, je fais plein de progrès :D

Reply

Marsh Posté le 07-01-2003 à 20:38:16    

++Taz a écrit :

ben c'est bien connu que je démarre au quart de tour. Je t'assure que depuis un certain temps, je fais plein de progrès :D  

:sweat:  
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 08-01-2003 à 04:01:48    

++Taz a écrit a écrit :

Je t'assure que depuis un certain temps, je fais plein de progrès :D


Je confirme.
Il s'est bien adouci depuis les commentaires frais qu'ils mavait envoyé sur PPC.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
Reply

Marsh Posté le 08-01-2003 à 07:08:30    

:D ²

Reply

Marsh Posté le 08-01-2003 à 08:17:49    

c'est pas encore ca moi je dis :D
 
je suis dehors.
 
LeGreg


---------------
voxel terrain render engine | animation mentor
Reply

Marsh Posté le 08-01-2003 à 09:27:19    

Musaran a écrit :

Je confirme.
Il s'est bien adouci depuis les commentaires frais qu'ils mavait envoyé sur PPC.


 
tu parles, on va se mettre a parler de VC++ et on va voir s'il s'est adouci :D :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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