IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Erreur avec : ofstream en paramètre d'une fonction


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 15
    Points : 6
    Points
    6
    Par défaut Erreur avec : ofstream en paramètre d'une fonction
    Bonjour,

    Je viens de reprendre un programme c++ codé avec Visual. Je l'ai transmis sous DevC++, et après avoir changé les bibliothèques comme ci-dessous :

    /* Version Dev C++ */

    #include <fstream> // Gestion des flux de données
    #include <iostream> // Fonctions d'entrée sortie
    #include <iomanip>
    #include <stdio.h> // Fonctions d'entrée sortie standart
    #include <stdlib.h> // Fonctions diverses
    #include <math.h> // Fonctions mathématiques
    #include <string.h> // Manipulation des châines de caractères
    #include <time.h> // Manipulation du temps
    #include <windows.h>
    using namespace std;


    /* Version Visual C++ */
    /*
    #include <fstream.h> // Gestion des flux de données
    #include <iostream.h> // Fonctions d'entrée sortie
    #include <iomanip.h>
    #include <stdio.h> // Fonctions d'entrée sortie standart
    #include <stdlib.h> // Fonctions diverses
    #include <math.h> // Fonctions mathématiques
    #include <string.h> // Manipulation des châines de caractères
    #include <time.h> // Manipulation du temps
    #include <windows.h>
    */



    il me met encore une erreur, lors de l'utilisation d'une fonction ayant un passage d'ofstream en paramètre.

    Déclaration :
    • int calcul_debit_moy_1(ParametresDeCalcul *pdc, Repartission *repartission, ofstream sortie_debit_sched_moy);
    • ofstream sortie_debit_sched_moy;
    • sortie_debit_sched_moy.open(pdc->FILE_debit_moy);

    Utilisation :
    • calcul_debit_moy_1(pdc, repartission, sortie_debit_sched_moy);


    Voici les 2 erreurs que j'obtiens dans DevC++ :
    1. 738 p:\document\ApplicationData\Dev-Cpp\include\c++\3.4.2\bits\ios_base.h `std::ios_base::ios_base(const std::ios_base&)' is private
    2. 769 p:\document\ApplicationData\Dev-Cpp\include\c++\3.4.2\streambuf `std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private


    Quelqu'un saurait-il m'aider svp ?

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    On ne peut pas passer les streams par valeur, passe une reference.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #3
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 896
    Points : 1 912
    Points
    1 912
    Par défaut
    Est-ce-que

    renvoie bien une chaine de caractère C style ? (c.à.d un char* ou une constante chaîne de caractère)

    Il me semble que les fstream ne peuvent pas prendre de std::string en paramètre du constructeur ou de la méthode open().

  4. #4
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 896
    Points : 1 912
    Points
    1 912
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    On ne peut pas passer les streams par valeur, passe une reference.
    Hum oui, exact, je n'avais pas remarqué ce détail.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 15
    Points : 6
    Points
    6
    Par défaut
    Envoyé par Jean-Marc.Bourguet
    On ne peut pas passer les streams par valeur, passe une reference.
    Le problème c'est que j'ai ensuite passé les ofstream par référence :

    int calcul_debit_moy_1(ParametresDeCalcul *pdc, Repartission *repartission, ofstream &sortie_debit_sched_moy);

    La compilation sous DevC++ c'est passé correctement, mais lors de l'exécution du programme dans certains cas, il n'a pas le comportement souhaité. Il "bug" et me sort des résultats pas en accord avec la version compilée sous Visual !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Erreur lors de l'utilisation de [VarTemp] en paramètre d'une fonction
    Par loki dans le forum Macros Access
    Réponses: 1
    Dernier message: 17/12/2014, 17h02
  2. Problème avec paramètre d'une fonction (classe)
    Par clement.analogue dans le forum Langage
    Réponses: 8
    Dernier message: 23/03/2010, 08h13
  3. Réponses: 4
    Dernier message: 22/03/2008, 12h06
  4. Réponses: 9
    Dernier message: 13/05/2005, 03h13
  5. Passer en paramètre d'une fonction (...)
    Par Captain_JS dans le forum C++
    Réponses: 5
    Dernier message: 03/11/2004, 07h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo