Partage
  • Partager sur Facebook
  • Partager sur Twitter

mettre un flux fstream en parametre d'une fonction

flux fstream et fonction

Sujet résolu
    17 mars 2019 à 21:10:07

    Salut a tous.

    Je voudrais juste savoir s'il était possible de mettre un flux fstream en paramètre d'une fonction et si possible comment cela ce fait-il ?

    Je cherche depuis un certain moment sur le net mais rien y faire.

    Merci de votre aide.

    • Partager sur Facebook
    • Partager sur Twitter
      17 mars 2019 à 21:30:29

      Qu'est-ce qui t'en empêche? Fait une petite recherche sur la passage par référence.
      • Partager sur Facebook
      • Partager sur Twitter

      GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.

        17 mars 2019 à 21:35:02

        Salut et merci d'avance.

        Regarde ceci:

        void matRecup(ifstream& fichier, vector<Matiere>& vect)
        
        {
        
            ifstream file(fichier, ios::in);

        C'est ce que j'ai fait mais les choses n'avancent pas et j'ai toujour des messages d'erreurs: "invalid user-defined conversion from'std::fstream ..." 

        Je comprends pas...

        • Partager sur Facebook
        • Partager sur Twitter
          17 mars 2019 à 21:51:08

          Un petit indice, les opérateurs << et >> sont des fonctions qui prennent un flux comme paramètre, donc la réponse à la question est ce possible est tranchée, la réponse est oui. Cependant, il y a une subtilité, les flux sont par essence non copiables, il faut donc les passer par référence.

          Pourquoi diable créer un fstream dans ta fonction? tu en as un paramètre, pourquoi vouloir en créer un autre ?

          Ma fonction est censée lire le contenu du fichier qui lui est passé en paramètre, pas d'un autre, pourquoi diable irait elle utiliser un flux différent de celui qu'on lui a donné? 

          Après on pourrait se poser la question de la pertinence de passer un flux en paramètre, d'une fonction, mais c'est un tout autre débat*...

          (*) La justification peut être fonctionnelle, mais je pense qu'il faut des arguments en béton armé pour argumenter du bien-fondé d'une telle construction.

          -
          Edité par int21h 17 mars 2019 à 22:08:18

          • Partager sur Facebook
          • Partager sur Twitter
          Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
            17 mars 2019 à 22:31:20

            KhadersVehi a écrit:

            C'est ce que j'ai fait mais les choses n'avancent pas et j'ai toujour des messages d'erreurs: "invalid user-defined conversion from'std::fstream ..." 

            Je comprends pas...

            Il faut conserver le même type lors du passage par référence, sinon le compilo veut une fonction de conversion ce qui visiblement ne trouve pas.

            Choisi entre fstream ou ifstream ...
            • Partager sur Facebook
            • Partager sur Twitter

            GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.

            mettre un flux fstream en parametre d'une fonction

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown