Il s'agit probablement d'une question embarrassante car la réponse est sans aucun doute évidente.
J'utilise Visual Studio depuis des années, mais c'est la première fois que je fais un développement d '«application console».
Lorsque j'exécute mon application, la fenêtre de la console apparaît, la sortie du programme apparaît, puis la fenêtre se ferme à la fermeture de l'application.
Existe-t-il un moyen de le garder ouvert jusqu'à ce que j'aie vérifié la sortie ou d'afficher les résultats après la fermeture de la fenêtre?
c
visual-studio
console
Martin
la source
la source
Réponses:
Si vous exécutez sans débogage (Ctrl + F5), par défaut, il vous invite à appuyer sur Retour pour fermer la fenêtre. Si vous souhaitez utiliser le débogueur, vous devez placer un point d'arrêt sur la dernière ligne.
la source
ctrl+f5
ne fonctionne pas, il n'y a pas de projetProperties
lorsque je clique avec le bouton droit, égalementwrench icon
grisé.Clic droit sur votre projet
Sélectionnez Console (/ SUBSYSTEM: CONSOLE) en
SubSystem
option ou vous pouvez simplement taper Console dans le champ de texte!Maintenant essayez-le ... ça devrait marcher
la source
CTRL+F5
échouera si, par exemple, vous ajoutez un nouveau fichier C ++ à un projet vide.Voici un moyen pour C / C ++:
Mettez cela en haut de votre programme, et si c'est sur un système Windows (
#ifdef _WIN32
), alors il créera une macro appeléeWINPAUSE
. Chaque fois que vous voulez que votre programme se mette en pause, appelezWINPAUSE;
et il mettra le programme en pause, en utilisant la commande DOS. Pour d'autres systèmes comme Unix / Linux, la console ne doit de toute façon pas se fermer à la sortie du programme.la source
pause
commande est spécifique à Windows.Aller au menu de débogage -> Appuyez sur Démarrer sans débogage
la source
Si vous utilisez .NET, mettez
Console.ReadLine()
avant la fin du programme.Il attendra
<ENTER>
.la source
Console.ReadKey()
simplement attendre n'importe quelle touche.À partir de Visual Studio 2017 (15.9.4), il existe une option:
Le fragment correspondant de la documentation de Visual Studio :
la source
essayez d'appeler
getchar()
juste avant lemain()
retour.la source
(/ SOUS-SYSTÈME: CONSOLE) n'a pas fonctionné pour mon vs2013 (je l'avais déjà).
"exécuter sans débogage" n'est pas une option, car je ne veux pas basculer entre le débogage et l'affichage de la sortie.
J'ai fini avec
Solution utilisée dans qtcreator pre 2.6. Maintenant que qt augmente, vs va dans l'autre sens. Si je me souviens bien, dans vs2008, nous n'avions pas besoin de telles astuces.
la source
Voici une solution qui (1) ne nécessite aucun changement de code ou point d'arrêt, et (2) fait une pause après la fin du programme afin que vous puissiez voir tout ce qui a été imprimé. Il s'arrêtera après F5 ou Ctrl + F5. L'inconvénient majeur est que sur VS2013 Express (tel que testé), il ne charge pas les symboles, donc le débogage est très restreint.
Créez un fichier batch. J'ai appelé le mien
runthenpause.bat
, avec le contenu suivant:La première ligne exécutera la commande que vous fournissez et jusqu'à huit arguments. La deuxième ligne va ... s'arrêter.
Ouvrez les propriétés du projet | Propriétés de configuration | Débogage.
$(TargetPath)
(ou tout ce qui se trouve dans "Commande").runthenpause.bat
.Maintenant, lorsque vous exécutez,
runthenpause.bat
lancera votre application et, une fois votre application terminée, s'arrêtera pour que vous puissiez voir la sortie de la console.Je publierai une mise à jour si je trouve comment charger les symboles. J'ai essayé
/Z7
par ceci mais sans succès.la source
mettez simplement votre dernière ligne de code:
la source
Vous pouvez exécuter votre exécutable à partir d'une invite de commande. De cette façon, vous pouvez voir toute la sortie. Ou, vous pouvez faire quelque chose comme ceci:
et de cette façon, la fenêtre ne se fermerait pas tant que vous n’auriez pas entré de données pour la
a
variable.la source
ajouter «| pause ”dans la zone des arguments de commande sous la section de débogage des propriétés du projet.
la source
pause
semble fonctionner uniquement dans des fichiers batch, et bien qu'il reçoive des données de votre programme sur STDIN, il ne réimprime pas ce texte. J'ai essayé de le remplacer|
par&&
, mais cela n'a eu aucun effet - probablement parce qu'il ne s'exécute pas avec un shell de commande (cmd.exe).Appuyez simplement sur CNTRL + F5 pour l'ouvrir dans une fenêtre de ligne de commande externe (Visual Studio n'en a pas le contrôle).
Si cela ne fonctionne pas, ajoutez ce qui suit à la fin de votre code:
Cela vous attend pour appuyer sur une touche pour fermer la fenêtre du terminal une fois que le code a atteint la fin.
Si vous voulez faire cela à plusieurs endroits, mettez le code ci-dessus dans une méthode (par exemple
private void Pause()
) et appelezPause()
chaque fois qu'un programme atteint une fin possible.la source
Une solution un peu meilleure:
au début de votre programme.
Avantages:
cin.sync(); cin.ignore();
astuce au lieu desystem("pause");
)Les inconvénients:
la source
Soit utiliser:
cin.get();
ou
system("pause");
Assurez-vous de faire l'un d'eux à la fin de la
main()
fonction et avant l'return
instruction.la source
Vous pouvez également utiliser cette option
la source
Dans mon cas, j'ai vécu cela lorsque j'ai créé un projet Empty C ++ sur l'édition communautaire VS 2017. Vous devrez définir le sous-système sur "Console (/ SUBSYSTEM: CONSOLE)" sous Propriétés de configuration.
la source
Visual Studio 2015 , avec importations . Parce que je déteste quand les exemples de code ne donnent pas les importations nécessaires.
la source
À utiliser
Console.ReadLine()
à la fin du programme. Cela gardera la fenêtre ouverte jusqu'à ce que vous appuyiez sur la Entertouche. Voir https://docs.microsoft.com/en-us/dotnet/api/system.console.readline pour plus de détails.la source