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 :

Problèmes de redirections des E/S standards


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut Problèmes de redirections des E/S standards
    Salut tout le monde,

    J'ai un problème avec mes redirections des flux d'entrées/sorties standards :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
             // Redirect standard input.
             std::ifstream streamInput("input.txt" );
             std::cin.rdbuf(streamInput.rdbuf());
     
             // Redirect standard output.
             std::fstream streamOutput("output.txt" );
             std::cout.rdbuf(streamOutput.rdbuf());


    Ce code est appelé à partir de la méthode Run de la classe qu'on appellera TestGui, et il fonctionne.
    Le problème est que dès que j'appelle des méthodes de mon instance de Gui (une autre classe donc) dans la méthode Run de TestGui, les redirections ne fonctionnent plus:
    il y a bien redirections, mais où ? je ne sais pas (pas sur les I/O standards ni dans mes fichiers)

    Toute aide est la bienvenue,

    Merci,

    Séb

  2. #2
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    Si j'implémente le code de redirection directement dans la fonction Run, ça fonctionne.

    Il semble que la portée de la redirection de E/S se limite à celle de la fonction dans laquelle elle est faite (mais les entrées/sorties standards ne sont pas rétablis pour autant à la sortie de la fonction, ils sont redirigés...quelque part )

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Si tes variables streamInput et streamOutput sont locales à la fonction, n'oublie pas qu'elles sont détruites (avec leur streambuf) à la fin de celle-ci... Il faut qu'elles aient un durée de vie au moins égale à celle de la redirection.

  4. #4
    Futur Membre du Club
    Inscrit en
    Mai 2007
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 4
    Par défaut
    Effectivement je n'avais pas fait attention au fait que leur streambuf était détruit en meme temps qu'elles

    Merci !

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

Discussions similaires

  1. Problème de redirection et sortie standard.
    Par Draleg dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 06/02/2014, 17h00
  2. Redirection des sorties standards dans JTextArea
    Par somnix dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 03/12/2012, 10h26
  3. Réponses: 14
    Dernier message: 23/05/2010, 11h49
  4. Réponses: 0
    Dernier message: 05/11/2009, 06h46
  5. Problème de compréhension des ensembles
    Par Cornell dans le forum Langage
    Réponses: 6
    Dernier message: 07/02/2003, 22h07

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