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

Code::Blocks Discussion :

Rediriger les entrée et sortie standard


Sujet :

Code::Blocks

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 52
    Points
    52
    Par défaut Rediriger les entrée et sortie standard
    Bonjour à tous

    Je commence à travailler sur un nouveau code de calcul développé par des collègues. Ils ont l'habitude de l'éxécuter avec un fichier remplacant l'entrée standard (qui fait office de fichire entrée de données) et un fichier ou sont écrits les résultat du calcul, remplaçant la sortie standard. En console (Linux ou Windows) mes collègues écrivent donc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prgm.exe < FichierDonnee > FichierResultat
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ./a.out < FichierDonnee > FichierResultat
    Je souhaite, moi, continuer à travailler avec Codeblocks auquel je suis habituée, mais je ne sais pas comment prendre en compte ces deux fichiers (l'un à lire, l'autre a remplir).
    Comment faire d'après vous ?

    Ci-joint un ecm issu de mon pgrm :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
     
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    #include <string.h>
     
     
     
    main(void)
    {
        int n,s;
        double t,d;
     
        n=2;
        d=0.1;
     
        scanf("%d %lf", &s, &t);
     
        n+=s;
        d*=t;
     
        printf("%d %e ", n, d);
     
    }
    FichierDonne.dat :

    FichierResultat : vide au début du calcul.


    Merci à vous si vous avez des idées !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2010
    Messages : 124
    Points : 52
    Points
    52
    Par défaut 2 "tricks"
    Voici deux solutions possibles pour ce pb:

    Solution 1:

    Executer le programme en reprenant la même syntaxe quen ligne de commande, grâce à une intrusction de post-process (=après la compilation).
    On écrit un petit script dans 'Projet--> Build Options --> Pre/Post Build steps --> Post-Build Step :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cmd /C cd /D "bin\$(TARGET_NAME)\" & Programme.exe < FichierDonnee.dat > FichierResultat.res
    (TARGET_NAME est une macro pour signifier où on se situe, à ne pas changer donc)
    On coche alors
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Always execute, even if target is up to date
    si on veut toujours executer cela.

    Ensuite le programme s'execute directement dans le foulée de la compilation.

    Solution 2 :

    On crée un outil spécifique qui remplacera l'onglet d'execution (du coup avec cette solution on garde des phases de compilation et d'execution séparée ce qui est intéressant) :

    Dans Tool -->Configure Tool --> Add :

    Name : Executable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Windows\System32\cmd.exe
    Parameters :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /C ${TARGET_OUTPUT_BASENAME} <FichierDonnee.dat >FichierResultat.res
    Working Directory : Après on compile normalement et au lieu d'utiliser le 'bouton' executer on va chercher notre 'Tool' spécifique.

    Voilà !!

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

Discussions similaires

  1. Comment exécuter une application extérieure et rediriger les entrés/sorties
    Par Laurent Dardenne dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 23/02/2013, 13h54
  2. balayer les entrées et sorties d'un modèle
    Par autousto dans le forum Simulink
    Réponses: 3
    Dernier message: 09/11/2011, 14h50
  3. Comment mettre à jour les entrées et sorties du stock
    Par devilbyme dans le forum Débuter
    Réponses: 5
    Dernier message: 11/10/2010, 10h02
  4. Comment rediriger l'entrée ou la sortie standard ?
    Par xavier2a dans le forum Langage
    Réponses: 3
    Dernier message: 06/03/2010, 12h35
  5. rediriger la sortie standard vers un textarea
    Par gromite dans le forum Composants
    Réponses: 9
    Dernier message: 10/05/2004, 11h07

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