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

  FORUM HardWare.fr
  Programmation
  C++

  pb d'écriture récursive dans un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

pb d'écriture récursive dans un fichier

n°1006464
pretorienx
Posté le 09-03-2005 à 10:35:01  profilanswer
 

j'utilise une fonction récursive pour écrire dans un fichier et j'ai un petit pb :
voici mon prog:
 

Code :
  1. void ThreatNode::Tree2IF(){
  2. char str[1000];
  3. FILE *stream;
  4. SonContainer *a_node_container;
  5. ThreatNode *a_node;
  6. if( (stream = fopen("H:\\CPP\\test\\test6\\prunning_tree.tree", "a" )) != NULL ){
  7. strcpy(str, this->getName());
  8.  fprintf(stream,"[\n" );
  9.  cout<< "[\n";
  10. for(int i=0;i<strlen(str);i++){
  11.  fprintf(stream,"%c",str[i]);
  12.  cout<< str[i];
  13. }//fin for
  14. fprintf(stream,";" );
  15. cout << ";\n";
  16.  a_node_container = this->son;
  17. while (a_node_container != NULL) {
  18.  a_node = a_node_container->a_node;
  19.  a_node->Tree2IF();
  20.  a_node_container = a_node_container->next;
  21. }
  22. fprintf(stream,"]\n" );
  23. cout<< "]\n";
  24. }//fin if
  25. fclose(stream);
  26. }


 
 
dnas mon fichier je trouve ça:
 

Code :
  1. [
  2. ouvrir_sur_place;]
  3. [
  4. en_cherchant;]
  5. [
  6. en_interrogeant;]
  7. [
  8. trouver_salle;]
  9. [
  10. percer;]
  11. [
  12. en_cherchant;]
  13. [
  14. en_interrogeant;]
  15. [
  16. trouver_salle;]
  17. [
  18. avec_combinaison;]
  19. [
  20. ouvrir_sur_place;]


 
 
or je vourdrait avoir avec que mes cout m'affichent à l'écran cad:
 

Code :
  1. [
  2. ouvrir_sur_place;
  3. [
  4. percer;
  5. [
  6. trouver_salle;
  7. [
  8. en_cherchant;
  9. ]
  10. [
  11. en_interrogeant;
  12. ]
  13. ]
  14. ]
  15. [
  16. avec_combinaison;
  17. [
  18. trouver_salle;
  19. [
  20. en_cherchant;
  21. ]
  22. [
  23. en_interrogeant;
  24. ]
  25. ]
  26. ]
  27. ]


 
 
 
je vois pas trop pourquoi , si quelqu'un avait une idée.

mood
Publicité
Posté le 09-03-2005 à 10:35:01  profilanswer
 

n°1006495
HelloWorld
Salut tout le monde!
Posté le 09-03-2005 à 10:57:18  profilanswer
 

Je sais pas, mais un petit conseil : demande plutot à recevoir un FILE* en paramètre de Tree2IF et file lui récursivement le pointeur de fichier (que tu auras créé dans ton main).
De plus, tu mélanges C et C++ (cout, fopen...). Utilise std::ofstream + std::string plutot, ainsi tu pourras enlever ton vilain char str[1000]; qui te causera que des problèmes (sécurité, dépassement de pile en récursif, ...).


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
n°1006526
pretorienx
Posté le 09-03-2005 à 11:11:38  profilanswer
 

HelloWorld a écrit :

Je sais pas, mais un petit conseil : demande plutot à recevoir un FILE* en paramètre de Tree2IF et file lui récursivement le pointeur de fichier (que tu auras créé dans ton main).
De plus, tu mélanges C et C++ (cout, fopen...). Utilise std::ofstream + std::string plutot, ainsi tu pourras enlever ton vilain char str[1000]; qui te causera que des problèmes (sécurité, dépassement de pile en récursif, ...).


 
 
 
Merci du conseil mais finalement j'ai trouvé je rajoute un fflush(stream).  
Par contre je vois pas trop pourquoi ça fonctionne avec fflush.

n°1006533
Taz
bisounours-codeur
Posté le 09-03-2005 à 11:13:27  profilanswer
 

oh du C !

n°1006593
HelloWorld
Salut tout le monde!
Posté le 09-03-2005 à 11:46:08  profilanswer
 

Parce que t'as plusieurs FILE* d'ouverts simultanément, et y'a du buffering etc...
C'est franchement plus propre de filer un seul et même FILE* à tout le monde (paramètre de ta fonction).
Test ta fonction sur un gros arbre, y'a au moins 2 problèmes en perspective (en plus de celui des performances) : limitation du nombre de handle, dépassement de pile avec ton char str[1000];.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite

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

  pb d'écriture récursive dans un fichier

 

Sujets relatifs
Lecture fichier XMLcopie contenu d'un fichier dans un tampon
Supprimer Un élément dans un fichier xml avec QT[C#/PPT] Ouverture d'un fichier PPT et accès aux variables
upload fichier impossible, fichier non trouvéLecture d'un fichier et copie dans un buffer, ultra lent ! [Resolu]
pb chemin d'accès à un fichier[VB]Manip fichier Excel+chemin depuis VB
[java][Resolu] Probleme lecture de fichierQuels logiciels pour creer Fichier/Edition/Affichage...?
Plus de sujets relatifs à : pb d'écriture récursive dans un fichier


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