31 votes

Comment quitter un programme C++ ?

Comment quitter un programme C++. Quelle fonction est appelée pour terminer un programme et quelles valeurs la méthode prend-elle ?

Pour clarifier, je veux quitter un programme C++ à partir de mon code. Et il se peut que je veuille quitter le programme à l'extérieur de la classe main de ce programme.

42voto

Otávio Décio Points 44200

Appelez le std::exit fonction.

25voto

Narendra N Points 399

Comme Martin York l'a mentionné, exit n'effectue pas le nettoyage nécessaire comme le fait return.

Il est toujours préférable d'utiliser le retour à la place de la sortie. Si vous n'êtes pas dans main, où que vous vouliez quitter le programme, retournez d'abord à main.

Prenons l'exemple suivant. Avec le programme suivant, un fichier sera créé avec le contenu mentionné. Mais si le retour est commenté & décommenté exit(0), le compilateur ne vous assure pas que le fichier aura le texte requis.

int main()
{
    ofstream os("out.txt");
    os << "Hello, Can you see me!\n";
    return(0);
    //exit(0);
}

De plus, avoir plusieurs points de sortie dans un programme rendra le débogage plus difficile. N'utilisez la sortie que lorsque cela peut être justifié.

8voto

Hooked Points 1825

Les gens disent "appelez exit(code de retour)", mais ce n'est pas correct. Dans les petits programmes, c'est correct, mais cela pose un certain nombre de problèmes :

  1. Vous finirez par avoir plusieurs points de sortie du programme.
  2. Cela rend le code plus alambiqué (comme l'utilisation de goto).
  3. Il ne peut pas libérer la mémoire allouée au moment de l'exécution

Vraiment, la seule fois où vous devriez sortir du problème est avec cette ligne dans main.cpp :

return 0;

Si vous utilisez exit() pour gérer les erreurs, vous devriez vous familiariser avec les exceptions (et l'imbrication des exceptions), qui constituent une méthode beaucoup plus élégante et sûre.

6voto

chrisbunney Points 2435

Le programme se termine lorsque le flux d'exécution atteint la fin de la fonction principale.

Pour l'arrêter avant cela, vous pouvez utiliser la fonction exit(int status), où status est une valeur renvoyée à ce qui a lancé le programme. 0 indique normalement un état de non-erreur

5voto

Goz Points 35007

Soit vous retournez une valeur de votre main ou utiliser le exit fonction. Les deux prennent un int. La valeur que vous retournez n'a pas vraiment d'importance, sauf si un processus externe surveille la valeur de retour.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X