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 :

Sortie d'un programme C++ de manière propre


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Points : 35
    Points
    35
    Par défaut Sortie d'un programme C++ de manière propre
    Bonjour,

    Je voudrais faire un arrêt du programme lorsque des paramètres d'entrée du programme sont incompatibles. Avant j'utilisais exit(1), mais je ne sais pas pourquoi depuis que je suis passé une version plus récente de gcc ce dernier ne marche que si je rajoute stdlib.h, cela m'a fait réalisé que exit venait du C et on m'a dit que c'était assez sale.

    Donc ma question quelle est la commande SIMPLE pour interrompre l'exécution du programme en C++.

    Merci d'avance pour votre aide.

  2. #2
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Si tu es dans main : return

    Si tu es ailleurs que dans main, tu envoies une exception, que tu attrappes dans le main.

    L'avantage de faire comme ça est que les destructeurs des objets sont appelés, et donc, les ressources libérées.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Points : 35
    Points
    35
    Par défaut
    Pourrais-tu me renvoyer vers un lien de la doc qui traite du sujet je n'ai jamais fait ce genre de manips...

  4. #4
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Tu veux dire que tu n'as jamais utilisé d'exceptions ?

    Dans ce cas, le mieux est de commencer par là :

    http://cpp.developpez.com/cours/polyCpp/#LVI

    il y a de bons tutoriels sur ce site, il ne faut pas hésiter à les lire !

  5. #5
    Expert éminent
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Points : 8 389
    Points
    8 389
    Par défaut
    Avant j'utilisais exit(1)
    Et si tu voulais être portable :
    mais je ne sais pas pourquoi depuis que je suis passé une version plus récente de gcc ce dernier ne marche que si je rajoute stdlib.h
    Ca, c'est en C. D'ailleurs, quel que soit ton compilateur (gcc ou pas gcc), tu dois inclure stdlib.h avant d'utiliser exit (car cette fonction est déclarée dans le fichier évoqué). Ou du moins il est recommandé.

    cela m'a fait réalisé que exit venait du C
    Et elle existe toujours en C++. Mais stdlib.h, ca n'est pas du C++. En C++ c'est cstdlib.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <cstdlib>
     
    ...
     
    std::exit(EXIT_FAILURE);
    Tu peux enlever le std:: si t'as mis using namespace std; après l'inclusion des fichiers d'en-tête.

    et on m'a dit que c'était assez sale.
    Si tu ne l'utilises pas comme il faut (libérer les mémoires allouées dynamiquement avant d'appeler exit, etc.).

    Donc ma question quelle est la commande SIMPLE pour interrompre l'exécution du programme en C++.
    exit, bien que les exceptions t'offrent plus de contrôle ...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2007
    Messages : 37
    Points : 35
    Points
    35
    Par défaut
    Non je n'ai jamais utilisé d'exception mais bon je peux apprendre merci pour le lien et merci au chevalier du Zodiaque pour les explications détaillées !

Discussions similaires

  1. sortie d'un programme
    Par ibtisss dans le forum Langage
    Réponses: 1
    Dernier message: 13/02/2006, 16h46
  2. Rediriger la sortie d'un programme vers un fichier
    Par olive_le_malin dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/11/2005, 09h55
  3. [Process] recuperer entree et sortie d'un programme externe
    Par Gob4 dans le forum API standards et tierces
    Réponses: 11
    Dernier message: 22/09/2005, 18h18
  4. A la sortie de la programmation DOS, WINDEV ? DELPHI ? ou ?
    Par zanimox dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 18/08/2005, 17h25
  5. redirection de la sortie d'un programme dos
    Par skaii dans le forum MFC
    Réponses: 2
    Dernier message: 11/05/2005, 14h42

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