Comment empêcher la console de se fermer une fois le programme terminé en C? [dupliquer]

Possibilité De Dupliquer:

Quelle est la meilleure pratique pour combattre le problème de la fermeture de la Console?

comment empêcher la console de se fermer une fois le programme terminé en C? Quand j'essaie de le chercher, je trouve beaucoup de choses sur C++ et d'autres langues, mais rien pour C. Aussi, même pour C++, il ne semble pas y avoir de réponse définitive.

alors quelqu'un pourrait-il s'il Vous Plaît me faire savoir quelle est la façon la plus simple (n'a pas besoin d'être super élégant) façon de garder la console ouverte après qu'un programme C soit terminé?

10
demandé sur Community 2009-12-08 04:33:12

6 réponses

les réponses précédentes supposent Toutes que vous voulez invoquer l'application de la console, puis la laisser" en cours d'exécution " et attendre la fin de l'entrée de l'utilisateur. Si cette hypothèse est correcte, alors +1 à la réponse de GMan. Cependant, si vous demandez comment invoquer cette application depuis un raccourci, Start - >Run ou un autre mécanisme et laisser la fenêtre cmd ouverte, alors vous devrez l'invoquer via cmd.exe avec le /k option comme suit:

cmd.exe /k "foo.exe"

ce lancera une fenêtre cmd, lancera votre application console, puis laissera la fenêtre cmd ouverte. Ceci s'adressera à @Thanatos ci-dessus. Il a raison en ce que vous devriez laisser la console se fermer. Encore une fois, pour moi, ce n'est pas clair ce que vous demandez vraiment pour ce que le but final devrait être.

Si j'ai fait la supposition erronée(s), n'hésitez pas à -1 moi.

18
répondu nithins 2009-12-08 01:55:18
  • exécuter le programme à partir de la commande ligne, au lieu de l'exécuter directement.

  • Ctrl+F5 dans Visual C++.

17
répondu AraK 2009-12-08 01:35:30

Les applications Console sont destinées à être exécutées à partir de la console. Si vous faites cela, après l'exécution vous serez laissé avec votre fenêtre de console, et pouvez facilement voir la sortie de votre programme.

Vous pouvez utiliser quelque chose comme getchar() pour forcer l'application à attendre pour une pression de touche.

10
répondu GManNickG 2009-12-08 01:36:39

laissez la console se fermer.

Si vous interdire, dans le programme, la console de clôture, il fera l'automatisation avec votre programme difficile, ou il fera le format de l'entrée d'étrange.

à la place, corrigez ce qui exécute le programme en premier lieu, pour ne pas fermer la fenêtre du terminal en premier lieu. S'il s'agit de MS Visual Studio, essayez F5 (démarrer sans débogage). Si vous avez besoin de débogage, placez un etbreakmark à la fin du programme. Sinon, ouvrez un l'invite de commande/terminal et exécutez le programme vous-même.

0
répondu Thanatos 2009-12-08 01:37:25

1) votre IDE ouvre la console avant le début du programme.

2) Votre programme se termine

3) l'IDE ferme la console

a) il suffit de dire à L'IDE de ne pas fermer la console ... ou

b) faites en sorte que votre programme ne se termine pas.

a) Aucune idée de comment le faire.

b) juste avant le return 0; utilisé pour terminer le programme Ajouter

printf("Press ENTER a few times to terminate the program");
fflush(stdout);
getchar(); getchar(); getchar(); getchar();
getchar(); getchar(); getchar(); getchar();
return 0;
0
répondu pmg 2009-12-08 01:39:51

Vous pouvez utiliser getch() à la fin de votre programme. Une autre façon est de déboguer le programme et placer un point d'arrêt avant la fin du programme.

0
répondu Kevin 2009-12-08 05:36:53