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 :

Mes applications console ne s'éxecutent pas


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Par défaut Mes applications console ne s'éxecutent pas
    je ne sais pas pourquoi mes petits programme console ne veulent pas s'éxecuter sous C++Builder. Aidez moi SVP

  2. #2
    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
    je ne sais pas pourquoi mes petits programme console ne veulent pas s'éxecuter sous C++Builder
    Moi non plus.

    Bon, pour donner quand même une réponse totalement au pif :
    http://c.developpez.com/faq/cpp/?pag...e#SL_cin_pause

  3. #3
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Salut,

    Peut-être que tu peux en dire plus, car à part y aller au pif comme Laurent, je vois pas trop comment résoudre ton problème.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  4. #4
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    ton programme se compile et se link t'il correctement ?

  5. #5
    Membre à l'essai
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Par défaut
    Citation Envoyé par ZaaN
    ton programme se compile et se link t'il correctement ?
    le programme se compile et se link et tout est correct

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Par exemple, tu pourrais montrer un exemple de petit programme qui ne s'exécute pas et essayer la solution proposée par Laurent Gomila. Si c'est uniquement un problème d'affichage, essaie de faire créer à ton programme un fichier et d'y écrire des traces tout au long de l'exécution de ce dernier. De cette manière, si le fichier est créé correctement, tu peux vérifier que le programme s'exécute bel et bien et où tu rencontres un problème.

    Tu peux également suivre l'exécution de ton programme pas à pas à l'aide du débogueur.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  7. #7
    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
    Salut,

    D'abord, qu'entend-tu par "mes applications consoles ne semblent pas s'exécuter"

    Est-ce le fait que, une fois sorti de l'IDE, si tu double clique sur l'application générée, tu as une fenetre noire qui s'ouvre et se referme très rapidement

    Si tel est le cas, tu as deux solutions distinctes:
    • La première consiste à lancer une console (menu démarrer>tous les programmes>accessoires> invite de commande), à aller dans le dossier dans lequel se trouve ton application et à lancer l'application au départ meme de la ligne de commande, au lieu de double cliquer dessus
    • La deuxième, peut etre préférable, consiste à prévoir une pause dans l'exécution de l'application, juste avant le dernier return 0 de la fonction main


    En effet, sous windows, si tu ne prévois pas une pause en fin d'exécution (ce pourrait, meme si ce n'est pas portable, se traduire par l'ajout d'un system("PAUSE") avant le return de la fonction main, ou par une série d'autres possilités bien préférables parce que plus portables) une console va s'ouvrir au début de l'exécution... et se refermer dés que l'exécution prend fin (ce qui donne l'impression que ca n'a pas fonctionné)

    Par contre, si tu lance l'application directement dans une console, et non en double cliquant dessus, vu que la console existe "indépendemment" de l'application, tu pourra voir les sorties consoles que l'application a provoquées

    Enfin, certains EDI "englobent" l'exécution de l'application en cours de création dans, justement, un système qui permet d'attendre que l'utilisateur appuie sur une touche avant de quitter la console, et d'autres non.

    Il me *semble* que Borland C++ builder fait partie de la deuxième catégorie...

    Le meme problème ayant les mêmes solutions, j'ai déjà indiqué comment le résoudre (system("PAUSE") ou similaire dans le code)

    NOTA: la méthode la plus portable pour provoquer une pause peut prendre, tout simplement, la forme d'un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        std::cout<<std::endl<<"Appuyez sur une touche pour quitter";
        std::cin.get();
    Si, enfin, tu entends tout autre chose par "mon application ne veut pas s'exécuter", il s'agira d'être plus précis pour que l'on puisse t'aider
    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

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Citation Envoyé par koala01
    Si tel est le cas, tu as deux solutions distinctes:
    • La première consiste à lancer une console (menu démarrer>tous les programmes>accessoires> invite de commande), à aller dans le dossier dans lequel se trouve ton application et à lancer l'application au départ meme de la ligne de commande, au lieu de double cliquer dessus
    • La deuxième, peut etre préférable, consiste à prévoir une pause dans l'exécution de l'application, juste avant le dernier return 0 de la fonction main
    ...et peut-être pas. Le propre d'un "petit" programme console est de ne réclamer aucune entrée, pour pouvoir être utilisé en batch.

    Enfin bien sûr, pour un programme de test ou de démonstration, on peut se permettre de rajouter une attente.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    On peut aussi utiliser un vrai EDI
    NB: certains proposent les deux options -> avec attente pour l'exécution normale, sans attente pour l'exécution au travers du débuggueur.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #10
    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
    Citation Envoyé par Médinoc
    ...et peut-être pas. Le propre d'un "petit" programme console est de ne réclamer aucune entrée, pour pouvoir être utilisé en batch.

    Enfin bien sûr, pour un programme de test ou de démonstration, on peut se permettre de rajouter une attente.
    C'était bien la raison du "peut etre"...

    Le propre d'un conseil donné est qu'il doit etre pondéré par les impératifs de la situation à laquelle il s'applique

    Généralement, quand on prodigue un conseil, on le pondère soi-même en connaissance de cause, mais, n'ayant pas tous les tenants et aboutissants, c'est au demandeur de le faire, et à nous de veiller à ne pas etre trop restrictif... Quitte à ce qu'une proposition particulière ne soit, en définitive, que l'expression d'une exeption

    Citation Envoyé par Luc Hermitte
    On peut aussi utiliser un vrai EDI
    NB: certains proposent les deux options -> avec attente pour l'exécution normale, sans attente pour l'exécution au travers du débuggueur.
    ne veux tu pas, plutot, dire "avec attente au travers de l'EDI et sans attente pour exécution normale

    Autrement, il est aussi possible de prévoir un état "debug" dans le code, grâce, entre autre, aux instruction preprocesseur...

    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
     
    #include <iostream>
     
    #ifndef DEGUB
    #define DEBUG 1//passer à 0 pour version finale
    //peut etre en profiter pour organiser un "affichage sur erreur" ;)
    #endif
    int main()
    {
     //...
        if(DEBUG)
        {
            std::cout<<"appuiez sur une touche pour quitter";
            std::cin.get();
        }
        return 0;
    }
    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

  11. #11
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 290
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par koala01
    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
     
    #include <iostream>
     
    #ifndef DEGUB
    #define DEBUG 1//passer à 0 pour version finale
    //peut etre en profiter pour organiser un "affichage sur erreur" ;)
    #endif
    int main()
    {
     //...
        if(DEBUG)
        {
            std::cout<<"appuiez sur une touche pour quitter";
            std::cin.get();
        }
        return 0;
    }
    Je chipotte certes, mais on peut faire tout simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include <iostream>
     
    int main()
    {
     //...
    #ifdef DEBUG
        std::cout<<"appuiez sur une touche pour quitter";
        std::cin.get();
    #endif
     
        return 0;
    }
    :]

  12. #12
    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
    Aussi, ou prévoir une série de choses dépendantes de DEBUG:
    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
     
    #include <iostream>
    #include <fstream>
     
    #ifndef DEBUG
    #define DEBUG 1 //passer à 0 pour version finale
    #if DEBUG
    #define ENDDEBUG std::cout<<"appuyez sur une touche pour quitter";\
                     std::cin.get()
    #define PRINT(x) std::cout<<x<<std::endl;
    #define LOG(x) std::ofstream ofs("error.log", std::ios_base::app);\
                   ofs<<x<<std::endl;
    #else //pour le if DEBUG
    #define ENDDEBUG
    #define PRINT(x)
    #define LOG(x)
    #endif //pour le if DEBUG
    #endif //pour le ifdef
    Et ca peut donner des trucs sympa par le simple fait d'un code du genre de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    int main()
    {
        //...
        PRINT("affichage uniquement en mode 'debug'");
        LOG("Logging pour tracer l'erreur");
        //attend une touche avant de quitter en mode debug uniquement
        //...
        ENDDEBUG;
        return 0;
    }
    Finalement, la seule limite est celle de l'imagination du concepteur
    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

  13. #13
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Citation Envoyé par koala01
    ne veux tu pas, plutot, dire "avec attente au travers de l'EDI et sans attente pour exécution normale
    Non.
    Exécution depuis la console => pas d'attente
    Exécution normale depuis l'EDI => attente
    Exécution via débuggueur de l'EDI => pas d'attente

    C'était le comportement par défaut de V6. Et ma foi, il est très bien.
    Après, en fonction des bibliothèques linkées (/du type du projet), je ne serai pas surpris que l'on puisse décider de ne jamais attendre (histoire de ne pas avoir à appuyer sur une touche après avoir fermé une fenêtre).
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  14. #14
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Il me semble que c'est l'EDI qui appelle pause, pas le programme lancé : Lui n'attend jamais.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  15. #15
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    C'est bien comme ça que ce devrait être -- histoire de ne pas pourrir les codes de system("pause").
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. Application console qui n'utilise pas Qt
    Par Neckara dans le forum Qt Creator
    Réponses: 0
    Dernier message: 21/07/2012, 17h22
  2. VS2010 Application Console "process ne repond pas"
    Par xian21 dans le forum Développement Windows
    Réponses: 5
    Dernier message: 23/08/2010, 17h20
  3. [AC-2007] Mes applications ne marchent pas sous vista
    Par miamou dans le forum Runtime
    Réponses: 1
    Dernier message: 21/06/2010, 15h20
  4. Application console DotNet 2.0 bloqué, pas d'exception levée
    Par Ozanges dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/11/2007, 11h15
  5. mes applications consoles ne fonctionnent pas
    Par mok16 dans le forum C++Builder
    Réponses: 1
    Dernier message: 10/01/2007, 14h22

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