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

  FORUM HardWare.fr
  Programmation
  C++

  j'ai un probleme bizarre avec mon programme qui lit dans un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

j'ai un probleme bizarre avec mon programme qui lit dans un fichier

n°277221
airseb
Posté le 29-12-2002 à 21:01:21  profilanswer
 

En effet, j'ai mis des cout pour voir si mon prog lit bien dans le fichier donc je vois que le programme marche sauf quand je met les cout en commentaire ou que je les enlèves, là j'ai un message d'erreur dans une fenetre qui dis : debug error ! runtime error.
Si je ne met pas les cout, mon programme n'affiche rien.
Cette erreur est -elle normale ? comment la résoudre ?

mood
Publicité
Posté le 29-12-2002 à 21:01:21  profilanswer
 

n°277226
chrisbk
-
Posté le 29-12-2002 à 21:13:26  profilanswer
 

en postant ton code

n°277227
airseb
Posté le 29-12-2002 à 21:24:58  profilanswer
 

Code :
  1. [cpp]#include <stdio.h>
  2.     #include <iostream.h>
  3.     #include <string.h>
  4.     #include <conio.h>
  5.     #define nb_vertices 697
  6. #define nb_faces 1280
  7.     void lecture ()
  8.     {
  9. char tmp [100] ;
  10. char tmp2 [100] ;
  11. int temp [nb_vertices] ;
  12. char chaine [100] ;
  13. char chaine2 [100] ;
  14. float tab_vertices [nb_vertices][3] ;
  15. int tab_sommets [nb_faces][3] ;
  16. char passe_ligne [200] ;
  17. int i ;
  18. FILE *cool ;    //pointeur sur le fichier cool
  19. if ((cool = fopen("cool.ase", "r" )) == NULL)
  20.          return ;
  21. strcpy (chaine , "*MESH_VERTEX" ) ;
  22. strcpy (chaine2 , "*MESH_FACE" ) ;
  23. do
  24.  {
  25.                
  26.  fscanf(cool, "%s", tmp) ;
  27.  }
  28.  while (strcmp (chaine, tmp) != 0) ;
  29.  for (i = 0; i < nb_vertices ;i++)//rempli le tableau avec des coordonnées de vertices
  30. {
  31.  fscanf (cool, "%d%f%f%f%s", &(temp[0]) , &(tab_vertices[i][0]), &(tab_vertices[i][1]), &(tab_vertices[i][2]), tmp) ;
  32.  cout << tab_vertices[i][0]<<" "<< tab_vertices[i][1]<<" "<< tab_vertices[i][2]<<endl ;
  33. }
  34. do
  35.  {
  36.                
  37.  fscanf(cool, "%s", tmp2) ;
  38.  }
  39.  while (strcmp (chaine2, tmp2) != 0) ;
  40. fscanf (cool, "%s%s%d%s%d%s%d", tmp, tmp, &(tab_sommets [0][0]),tmp,
  41.    &(tab_sommets [0][1]),tmp, &(tab_sommets [0][2])) ;
  42. for (i=1 ; i< nb_faces ; i++) //rempli le tableau avec le numero des sommets
  43. {
  44.  fgets (passe_ligne, 200, cool) ; //saute une ligne dans le fichier où les données ne servent pas
  45.  fscanf (cool, "%s%s%s%d%s%d%s%d",tmp, tmp, tmp, &(tab_sommets [i][0]),tmp,
  46.    &(tab_sommets [i][1]),tmp, &(tab_sommets [i][2])) ;
  47.  cout << tab_sommets [i][0]<<" "<<tab_sommets [i][1]<<" "<<tab_sommets [i][2] << endl ;
  48. }
  49.      fclose (cool) ;
  50.    }
  51.    void main (void)
  52.    {
  53.     lecture () ;
  54. getch () ;
  55.    
  56.    }

n°277231
HelloWorld
Salut tout le monde!
Posté le 29-12-2002 à 21:36:56  profilanswer
 

J'ai pas trop lu, mais mélanger iostream et stdio, c'est pas un bonne idee.
J'ai deja eu des pblm.
Choisi en un => utilise printf.
Cela dit c'est peut etre pas ca.
Perso, pour tester si mes routines d'ecriture / lecture marchent, je cree 2 fonction lire / ecrire et je copie un fichier de test.
Si la copie est identique a l'origine, c'est bon signe.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°277235
airseb
Posté le 29-12-2002 à 21:43:35  profilanswer
 

j'ai mis des printf mais ça marche tjs pas  :(

n°277244
HelloWorld
Salut tout le monde!
Posté le 29-12-2002 à 22:07:35  profilanswer
 

Citation :

fscanf (cool, "%s%s%s%d%s%d%s%d",tmp, tmp, tmp, &(tab_sommets [i][0]),tmp, &(tab_sommets [i][1]),tmp, &(tab_sommets [i][2])) ;


 
C'est mieux ainsi (mais c'est pas la cause de ton probleme :)

Code :
  1. fscanf(cool,
  2.        "%*s%*s%*s%d%*s%d%*s%d",
  3.        &(tab_sommets [i][0]),
  4.        &(tab_sommets [i][1]),
  5.        &(tab_sommets [i][2])) ;


les '*' font ignorer ce parametre.
 
Moi je te conseille d'y aller doucement. Tu lis un float et tu l'affiche. Petit a petit tu lit le suivant ...


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°277249
airseb
Posté le 29-12-2002 à 22:22:35  profilanswer
 

scuse mais je comprend pas bien ce que tu veux que je fasse  :??:  

n°277279
farib
Posté le 29-12-2002 à 23:36:31  profilanswer
 

euh a partir du moment ou tu te sers de cout / cin, pkoi tu te fais chier avec les scan/print ?


---------------
Bitcoin, Magical Thinking, and Political Ideology
n°277283
airseb
Posté le 29-12-2002 à 23:48:30  profilanswer
 

farib a écrit :

euh a partir du moment ou tu te sers de cout / cin, pkoi tu te fais chier avec les scan/print ?


 
pasque là c fscanf et pas scanf, fscanf c pour lire dans un fichier.

n°277294
farib
Posté le 30-12-2002 à 00:41:03  profilanswer
 

tu peux lire/ecrire dans des fichiers
 
 
fstream Caca("caca.txt" )
 
Caca << bidule
Caca >> bidula


---------------
Bitcoin, Magical Thinking, and Political Ideology
mood
Publicité
Posté le 30-12-2002 à 00:41:03  profilanswer
 

n°277295
nraynaud
lol
Posté le 30-12-2002 à 00:44:54  profilanswer
 

airseb a écrit :


 
pasque là c fscanf et pas scanf, fscanf c pour lire dans un fichier.


 
ben tu ouvres des streams en lecture ou en écriture sur ton fichier et tu utilises << et >> comme avec cin ou cout (qui sont des stream ouvert sur l'entrée et la sortie standard respectivement, cerr doit être la sortie d'erreur pendant qu'on y est).

n°277297
airseb
Posté le 30-12-2002 à 00:46:03  profilanswer
 

j'ai essayer mon programme avec borland c++ au lieu de visual C++ et ça marche !
qu'est-ce qui ne va pas avec visual ?

n°277308
nraynaud
lol
Posté le 30-12-2002 à 01:24:30  profilanswer
 

airseb a écrit :

j'ai essayer mon programme avec borland c++ au lieu de visual C++ et ça marche !
qu'est-ce qui ne va pas avec visual ?


 
Le problème se situe dans ton programe, pas dans ta biliothèque de classes, Borland semble accepter des choses que la norme ne l'oblige pas a accepter.
 
Vire tous tes fopen, fscanf, fmachins et utilises de streams partout. Ou alors ne prétends pas faire du C++. En plus tu utilises des tableaux n'importe comment.


Message édité par nraynaud le 30-12-2002 à 01:25:06
n°277331
Musaran
Cerveaulté
Posté le 30-12-2002 à 05:04:35  profilanswer
 

Sous Visual C++ 6, <iostream.h> se lie à une ancienne librairie, c'est peut-être là ton problème.
 
Choisis d'abord si tu fais du C ou du C++.
Si tu gardes C++, utilise:

Code :
  1. #include <iostream>
  2. using namespace std;


Message édité par Musaran le 31-12-2002 à 05:36:56

---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°277431
farib
Posté le 30-12-2002 à 13:08:44  profilanswer
 

j'ai envie de faire venir Taz@PPC sur ce topic  :whistle:  :whistle:


---------------
Bitcoin, Magical Thinking, and Political Ideology

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

  j'ai un probleme bizarre avec mon programme qui lit dans un fichier

 

Sujets relatifs
[PHP] Afficher le nombre de fichier d'un dossier[PHP] - Commande pr connaitre le chemin d'un fichier
[JAVASCRIPT] Popup en JS, tout petit probleme: pliz help[PHP] Apache ne peux pas inclure n'importe quel fichier
[PHP&SQL] Problème avec php-forge2[C] arreter un programme proprement
[Delphi] Comment savoir si mon programme est actif ?[Linux] Utiliser une commande dans un programme
[SQL Server] Probleme MS SQL Server sous Win XP[ resolu ] JTree, est ce qu'on pe représenter un système de fichier ??
Plus de sujets relatifs à : j'ai un probleme bizarre avec mon programme qui lit dans un fichier


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