Fermeture de fichier en C++

pi€rre Messages postés 76 Statut Membre -  
pi€rre Messages postés 76 Statut Membre -
Salut la compagnie, je suis sur un programme en C++ sous visual et j'ai un problème:
fclose(fic);
à l'éxecution j'ai l'erreur: User break point called from code at 0x7848018c
je vous remercie de m'aider
à +

22 réponses

  • 1
  • 2
  1. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    break point ? c est sous debugger les break point...
    c'est posible de voir ton code?
    0
  2. pi€rre Messages postés 76 Statut Membre
     
    merci de ton aide, voici mon code:

    dans le main:
    /*fermeture des fichiers */
    if (ferme_fic(fic_mid,fic_mif))
    exit(-1);

    int ferme_fic(FILE* fic_mid, FILE* fic_mif)
    {
    if (fclose(fic_mid))
    {
    printf("impossible de fermer le fichier .MID");
    getchar();
    return(-1);
    }
    if (fclose(fic_mif))
    {
    printf("impossible de fermer le fichier .MIF");
    getchar();
    return(-1);
    }
    return(0);
    }
    0
  3. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    Bon a priori ya pas de prob pour moi ca marche,
    le mieux c est de passer ton code au debugger et m'envoyer les lignes de code ou ca merde...
    verifie aussi les pointeurs que tu file a ta fonction ..si ils sont nuls c est normal que ca merde..
    si ils ont était modifié en cours de route c est normal aussi

    #include <stdio.h> 
    #include <stdlib.h>
    
    //tester compilé debuggé ecexcuté ca marche sans probleme
    //cela vient d'ailleur
    //peut etre de l'ouverture des fichier..si ils ne sont pas ouverts
    //ba ca merde forcement...
    
    
    //ta fonction de fermeture
    //juste un truc il vo mieux faire une fonction qui fermera un fichier a la fois
    //dans le cas ou sa merde sur l un des deux ca foutera pas tout en l air...
    int ferme_fic(FILE* fic_mid, FILE* fic_mif)
    { 
    	if (fclose(fic_mid)) 
    	{ 
    		printf("impossible de fermer le fichier .MID"); 
    		//pourquoi les gatchar??
    		getchar(); 
    		return(-1); 
    	} 
    	if (fclose(fic_mif)) 
    	{ 
    		printf("impossible de fermer le fichier .MIF"); 
    		//pourquoi les gatchar??
    		getchar(); 
    		return(-1); 
    	} 
    	return(0); 
    }
    
    
    //le main que j ai fait pour test
    void main () 
    { 
    		FILE* fic1;
    		FILE* fic2;
    		
    		//ouverture des fichiers
    		fic1=fopen("h:\\test1.txt","r");
    		fic2=fopen("h:\\test2.txt","r");
    		
    		
    		//ton code
    		if (ferme_fic(fic1,fic2)) 
    			exit(-1); 
    		else exit(0);
    
    }
    
    
     
    
    
    
    0
  4. pi€rre Messages postés 76 Statut Membre
     
    merci des conseils
    En fait je viens de me rendre compte que j'ai l'erreur aussi pour tous les free que j'fai

    les getchar() c parce que je fait exit et je vois pas mon printf sinon (c'est juste pour le degugage
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    lol..
    pour info le debuggage ca se fait pas en faisant des printf ^^
    t'utilise quoi comme plateforme de dev?
    0
  7. pi€rre Messages postés 76 Statut Membre
     
    je debug avec f10 f11 aussi sinon je travail avec visual
    0
  8. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    c'est une rolls ca...j ai le meme (enfin por le c/c++ en ce moment j fait du java alors c est plus eclipse...)
    0
  9. pi€rre Messages postés 76 Statut Membre
     
    ca bug de tant en tant surtout quand tu fait des mfc

    tu n'aurais pas une idée pour un pb que j'ai eu hier cf syntax error:
    0
  10. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    j retrouve pas le post fait un c/c ici avec le code qui merde j jetrai un oeuil dessus cet apre m si tu le post avant 18h sinon dem1 ;-)
    0
  11. pi€rre Messages postés 76 Statut Membre
     
    C_foret::C_foret(C_foret *foret)
    {
    strcpy(nom, foret->nom);
    zone=foret->zone;
    }

    syntax error '->'
    0
  12. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    sur la 1 ere ou la seconde ligne ou sur les 2?
    c'est ton createur ca ..c'est possible d'avoir les declaration de la classe?
    0
  13. pi€rre Messages postés 76 Statut Membre
     
    j'ai l'erreur au deux flèches et j'ai aussi l'erreur:
    syntax error '.' pour les deux dans la surcharge de l'operateur egal
    C_foret C_foret::operator=(C_foret foret)
    {
    zone=foret.zone;
    strcpy(nom,foret.nom);
    return(this);
    }

    voici ma classe:
    class C_foret
    {
    public:
    /* ATRIBUTS */
    C_zone zone;
    char nom[10];

    /* METHODES */
    C_foret(C_foret *foret);
    C_foret(int taille_foret);
    ~C_foret();
    affiche_foret();
    C_foret operator=(C_foret foret);
    };
    0
  14. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    je vais etre chiant mais pour tester je pourrai avoir la classe c_zone?
    0
  15. pi€rre Messages postés 76 Statut Membre
     
    je peux t'envoyer un mail avec tout mon code ?par ce que se serait un peu long par le forum
    0
  16. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    oui pas de probleme..mon @ doit etre visible dans mon profil..
    0
  17. pi€rre Messages postés 76 Statut Membre
     
    y a marqué ke t'a pas de profil :(
    0
  18. Canard007 Messages postés 5954 Date d'inscription   Statut Contributeur 216
     
    arf lol
    effectivement yavai rien
    ...
    normalement c est bon maintenant
    0
  19. pi€rre Messages postés 76 Statut Membre
     
    voilà c fait merci encor de regarder
    0
  20. pi€rre Messages postés 76 Statut Membre
     
    Eh canard si tu trouve pas c normal ca fait deux jours que je cherche sans resultats
    0
  21. pi€rre Messages postés 76 Statut Membre
     
    J'AI TROUVE:
    c'est dans foret.h:
    il faut
    #ifndef foret_h
    #define foret_h
    #endif  foret_h

    et pas:
    #ifndef foret
    #define foret
    #endif  foret
    0
  • 1
  • 2