Je débute en Visual C++ et j'aimerais savoir comment conserver la fenêtre de la console.
Par exemple, il s'agit d'une application typique de type "hello world" :
int _tmain(int argc, _TCHAR* argv[])
{
cout << "Hello World";
return 0;
}
Quelle est la ligne que je manque ?
0 votes
Amruth A. Pillai votre code ne montre pas "press any key to continue" merci
0 votes
Vous pouvez l'imprimer vous-même avec un simple appel à std::cout.
6 votes
L'inconvénient de toutes les solutions proposées est qu'aucune d'entre elles ne fonctionne avec le débogage (Ctrl+F5 échoue ici) et lorsque l'application s'arrête de manière inattendue (tous les points d'arrêt ou les lectures de stdin au retour principal échouent ici). Ce que j'aimerais voir, c'est une fenêtre de console dans l'IDE comme Eclipse et d'autres IDEs. Ils continuent simplement à afficher la sortie vers stdout/stderr après la fin du programme.
0 votes
@sybren La réponse acceptée fonctionne avec CTRL+F5, et pourquoi voudriez-vous une solution qui fonctionne avec le débogage (F5) ? Le but du débogage n'est-il pas de déboguer ? Quel est l'avantage d'avoir une console en pause après la fin du programme, dans une session de débogage ?
2 votes
@JBentley Eclipse et d'autres IDE vous permettent de lire la sortie de votre programme même après la fin du processus. Vous voyez sûrement l'avantage supplémentaire, surtout lorsque vous essayez de trouver un bug ? De plus, un point d'arrêt ne fonctionne que si vous savez où le programme se termine, ce qui peut être difficile à dire lorsque la sortie disparaît de votre écran.
0 votes
@Sybren Pourriez-vous préciser, à l'aide d'un exemple, quand il serait utile, au cours d'une session de débogage, de visualiser la sortie finale d'un programme terminé ? De la façon dont je vois les choses, si vous êtes seulement intéressé par l'inspection de la sortie finale, alors CTRL-F5 est supérieur car il se lance plus rapidement. Et si vous avez besoin de plus que cela, il est de toute façon nécessaire d'avancer ou de définir un point d'arrêt, auquel cas la question de l'ignorance du point de terminaison est discutable. Par définition, si votre programme s'exécute directement jusqu'à la fin sans interaction ni inspection du développeur, vous ne déboguez pas.
0 votes
@JBentley Personnellement, je pense qu'il y a une différence entre le "débogage" général et le "débogage VS" spécifique, qui consiste à utiliser le débogueur VS pour avancer dans le programme. De plus, parfois je ne sais pas que je veux lire une sortie enregistrée, jusqu'à ce que le programme soit terminé. Une autre raison pourrait être que la cause de la fin du programme se trouve dans le même morceau de code (par exemple une bibliothèque tierce) qui produit la sortie que je veux lire. Cet appel à la bibliothèque est soit exécuté (il imprime la sortie, puis se termine), soit non exécuté (il n'imprime pas de sortie).
0 votes
@Sybren vous n'avez jamais ajouté un cout << "Test" ; pour vérifier si une fonction est appelée ?
0 votes
@jiggunjer : bien sûr que oui, mais ce n'est pas le sujet. Je ne vois pas l'avantage de Visual Studio à supprimer activement la sortie du programme après la fin du programme ; je ne vois que des inconvénients.
0 votes
Duplicata possible de Empêcher la fermeture de la fenêtre de la console dans une application Visual Studio C/C++ Console