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

  FORUM HardWare.fr
  Programmation
  C++

  plantage lors de l'exécution (un seul cas de figure)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

plantage lors de l'exécution (un seul cas de figure)

n°1343168
Thordax
Shop smart. Shop S-Mart !
Posté le 10-04-2006 à 15:54:20  profilanswer
 

J'ai un vieux probleme de derriere les fagots avec ce code :
 

Code :
  1. #include <vector>
  2. #include <iomanip>
  3. #include <utility>
  4. #include <time.h>
  5. #include "classes.h"
  6. using namespace std;
  7. int main(int argc, char *argv[])
  8. {
  9. std::vector< std::pair<int,string> > tab_c;
  10. //                              DECLARATIONS                             //
  11. Fichier_analyse F1;
  12. Fichier_analyse F2;
  13. if(!argv[1]){cout << "fichier non rentre" << endl;system("pause" );exit(0);}
  14. if(!argv[2]){cout << "Deuxieme fichier non rentre" << endl;system("pause" );exit(0);}
  15. if(!argv[3]){cout << "Fichier Sortie non rentre" << endl;system("pause" );exit(0);}
  16. string fichier_sortie = argv[3];
  17. std::ifstream fichier( argv[3] );
  18. if(fichier){char reponse = 'a';
  19.             while((reponse != 'o')&&(reponse != 'n')){
  20.       cout << endl <<"Fichier de sortie deja present, voulez vous ecraser ? (o/n)" << endl;
  21.       cin >> reponse;
  22.       }
  23.    if(reponse == 'o'){
  24.         std::ofstream fichier2( argv[3], ios_base::trunc);
  25.         fichier2.close();
  26.         //ecrasement
  27.         }
  28.             if(reponse == 'n'){cout << endl <<"Veuillez entrer le nouveau nom (sans extension): " << endl;
  29.                      string reponse2;
  30.          cin >> reponse2;
  31.          fichier_sortie = reponse2 + ".txt";}
  32.          }
  33.            
  34. int tailleBuf1 = F1.setBuffer(argv[1]);
  35. int tailleBuf2 = F2.setBuffer(argv[2]);
  36. int index = 1;
  37. SDU trame_SDU;
  38. int errpar=0;
  39. //std::vector<int> ent_mux;ent_mux.resize(16);
  40. std::vector<int> ent_mux;ent_mux.resize(16);
  41. //-----------------------------------------------------------------------//
  42. int num = 1;
  43. vector<int> resultat_test_trame;resultat_test_trame.resize(3);
  44. while(index!=F1.get_fin_fichier()){
  45.          
  46. string SDU_temp = F1.getSDU(index);
  47. trame_SDU.set_SDU(SDU_temp);
  48. int index_PDU = 1;
  49. bool val = trame_SDU.trame_avec_PDU(SDU_temp);
  50. if(val == 1){int temp_PDU = index_PDU-1;
  51. while(index_PDU != 0){
  52. PDU trame_PDU;
  53. //                                  LA PDU A TRAITER                              //
  54. //--------------------------------------------------------------------------------//
  55. string trame_atraiter = trame_SDU.getPDU(temp_PDU);
  56. trame_PDU.set_PDU(trame_atraiter);
  57. //--------------------------------------------------------------------------------//
  58. trame_PDU.traiter_trame_PDU(trame_atraiter,errpar, ent_mux, index_PDU, index, temp_PDU, fichier_sortie);
  59. std::vector<int> resultat = trame_PDU.calc_MCMPLP(trame_atraiter, errpar, ent_mux);
  60. }
  61. //TAG : IL PLANTE ICI ET REFUSE DE RENTRER DANS L'AUTRE BOUCLE !!!!!
  62. }
  63. else{
  64.  string SDU_temp = F1.getSDU(index);
  65.  PDU trame_PDU;
  66. //                            LA SDU A TRAITER (SANS PDU)                         //
  67. //--------------------------------------------------------------------------------//
  68.  trame_PDU.set_PDU(SDU_temp);
  69. //--------------------------------------------------------------------------------//
  70.  trame_PDU.traiter_trame_SDU(errpar, ent_mux, index_PDU, index, fichier_sortie);
  71. }
  72. }//fin while fin de fichier
  73. cout << endl << "Fin Fichier 1" << endl;
  74. errpar = 0;
  75. index = 1;
  76. //--------------------------------------------------------------------------------//
  77. //                                  FICHIER 2                                     //
  78. //--------------------------------------------------------------------------------//
  79. while(index!=F2.get_fin_fichier()){
  80. int num = 2;
  81. string SDU_temp = F2.getSDU(index);
  82. trame_SDU.set_SDU(SDU_temp);
  83. int index_PDU = 1;
  84. bool val = trame_SDU.trame_avec_PDU(SDU_temp);
  85. if(val == 1){int temp_PDU = index_PDU-1;
  86. while(index_PDU != 0){
  87. PDU trame_PDU;
  88. //                                  LA PDU A TRAITER                              //
  89. //--------------------------------------------------------------------------------//
  90. string trame_atraiter = trame_SDU.getPDU(temp_PDU);
  91. trame_PDU.set_PDU(trame_atraiter);
  92. //--------------------------------------------------------------------------------//
  93. trame_PDU.traiter_trame_PDU(trame_atraiter,errpar, ent_mux, index_PDU, index, temp_PDU, fichier_sortie);
  94. std::vector<int> resultat = trame_PDU.calc_MCMPLP(trame_atraiter, errpar, ent_mux);
  95. }}
  96. else{
  97.  PDU trame_PDU;
  98. //                            LA SDU A TRAITER (SANS PDU)                         //
  99. //--------------------------------------------------------------------------------//
  100.  trame_PDU.set_PDU(SDU_temp);
  101. //--------------------------------------------------------------------------------//
  102.  trame_PDU.traiter_trame_SDU(errpar, ent_mux, index_PDU, index, fichier_sortie);
  103. }
  104. }//fin while fin de fichier
  105. cout << "Fin Fichier 2" << endl;


 
le fichier se compile nickel et s'execute également bien
 
par contre lorsque le fichier de sortie existe déjà (debut de code) et que j'en rentre un nouveau, il créé bien le fichier mais il plante au niveau du tag que j'ai indiqué dans le code.
 
Pourquoi le seul fait que je créée un fichier de rien ou que j'en efface un puis en refasse un autre fait tout planter ?
 
Note : a un moment, c'était le contraire qui plantait : lorsque je créais un fichier alors qu'il n'y en avait pas, cela plantait, et lorsque je demandais l'écrasement du fichier ca marchait ...
C'est quoi ce binz ?

mood
Publicité
Posté le 10-04-2006 à 15:54:20  profilanswer
 


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

  plantage lors de l'exécution (un seul cas de figure)

 

Sujets relatifs
script méteo problème à l'executionexecution automatique
Maximum execution time of 30 seconds exceededPb execution php
mon 1er et seul prgTemps d'éxécution d'un bout de code.
un seul lien sur deux <li>Execution d'un void main(args[]) en java et valeur retour
Execution de requeteProblème lors de l'éxécution de rquête dans un formulaire
Plus de sujets relatifs à : plantage lors de l'exécution (un seul cas de figure)


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