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

SL & STL C++ Discussion :

donner ifstream à fonction nécessitant FILE*


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut donner ifstream à fonction nécessitant FILE*
    Salut,

    Je commence à m'intéresser aux bibliotheques libpng, libjpg, que je voudrais pouvoir gérer dans plusieurs classes...

    Les classes qui gerent ces bibliotheques disposent toutes d'un membre Filename correspondant au nom du fichier dont il faut récupérer l'image, et d'une methode Load(), qui doit fournir l'image "visible"...

    Damn, les deux biliotheques sont écrites en C, et les fonctions fournies par l'interface nécessitent donc un filedescriptor de type FILE*

    Evidemment, je pourrais me contenter de travailler "A la C" dans ma méthode Load() (avec ouverture du fichier sous la forme de FILE *fp(Filename.c_str(),"rb"); et tout ce qui s'en suit)... Sauf que...

    Sauf que, tant qu'à faire, je préfererais travailler en C++ autant que possible...

    Bref, si l'ouverture du fichier en binaire ne me pose aucun problème, celui de passer mon ifstream en parametre FILE* bien...

    J'ai bien pensé à utiliser la methode rdbuf() des ifstream... Mais cela renvoie un basic_streambuf<charT,traits> * qui ne semble pas correspondre...

    Alors la question qui tue: quelle méthode peut-on utiliser pour récupérer le filedescriptor d'un ifstream, et pouvoir le passer en tant que pointeur FILE* à une fonction

    Merci d'avance
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Certains compilateurs fournissent comme extensions des iostreams qui fonctionnent avec des FILE*.
    Mais sinon rien ne garantit que std::fstream soit implémenté par un FILE*.

Discussions similaires

  1. Counter en fonction du file name !
    Par _shuriken_ dans le forum Solaris
    Réponses: 3
    Dernier message: 04/06/2012, 07h22
  2. Counter en fonction du file name !
    Par _shuriken_ dans le forum Administration système
    Réponses: 6
    Dernier message: 03/06/2012, 21h24
  3. Fonction Express File Dialog
    Par Mat32 dans le forum LabVIEW
    Réponses: 6
    Dernier message: 22/08/2009, 14h46
  4. Donner la fonction sinus et la tracer dans un repère
    Par chups0401 dans le forum Pascal
    Réponses: 4
    Dernier message: 28/11/2008, 18h10
  5. [RegEx] Fonction nécessite une fonction
    Par floriian2008 dans le forum Langage
    Réponses: 1
    Dernier message: 06/08/2008, 17h32

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