163 votes

Voir la sortie de la console dans Visual Studio 2010 ?

J'écris un simple programme C# avec quelques sorties ( Console.WriteLine("..."); ). Le problème est qu'à chaque fois que je l'exécute, je ne peux pas voir le résultat du programme dans la fenêtre de sortie.

La balise "sortie du programme" est déjà cochée, et j'ai déjà redirigé toutes les sorties vers la fenêtre intermédiaire mais en vain.

Comment faire pour voir les résultats du programme ?

Je ne pense pas que le problème vienne de mon code. J'ai essayé d'exécuter un programme simple qui ne fait que sortir une chaîne et lire la ligne "ala hello world" et je ne vois toujours pas de sortie. Le problème vient soit du fait que je cherche la sortie au mauvais endroit, soit du fait que Visual Studio se comporte mal.

El debug.write ne fonctionne pas non plus.

Utilisation de debug.Write tout fonctionne, même si ce n'était pas le cas avant. Soit quelque chose a buggé avant que je ne redémarre, soit j'ai juste besoin de faire une pause, de toute façon tout va bien maintenant. Merci à tous pour les commentaires utiles =)

7 votes

Visual Studio couvre votre fenêtre de console. Déplacez-le sur votre autre moniteur.

0 votes

195voto

Richard Adnams Points 1859

Vous pouvez utiliser le System.Diagnostics.Debug.Write o System.Runtime.InteropServices pour écrire des messages dans la fenêtre de sortie.

10 votes

System.Diagnostics.Debug.Write (au cas où l'OP n'aurait pas l'espace de nom en jeu)

4 votes

Ah c'est vrai, j'ai juste l'habitude de frapper le contrôle + point :)

0 votes

Jonsca : j'ai un espace de nom en jeu et pourquoi puis-je simplement utiliser console.writeline, je veux que mon programme écrive sur la console, ce n'est pas seulement pour des raisons de test ?

50voto

JMarsch Points 9814

Voici quelques éléments à vérifier :

  1. Pour console.Write/WriteLine votre application doit être une application console. (cliquez avec le bouton droit de la souris sur le projet dans l'explorateur de solutions, choisissez Propriétés et regardez le " Type de sortie "dans l'onglet Application -- devrait être " Application Console "(remarque : si vous avez vraiment besoin d'une application Windows ou d'une bibliothèque de classes, ne changez pas cette valeur en Console App juste pour obtenir l'effet de surprise). Console.WriteLine ).

  2. Vous pourriez utiliser System.Diagnostics.Debug.WriteLine pour écrire dans la fenêtre de sortie (pour afficher la fenêtre de sortie dans VS, il faut Voir | Sortie ) Notez que ces écritures ne se produiront que dans un build où la condition DEBUG est définie (par défaut, les builds debug le définissent, et les builds release ne le font pas).

  3. Vous pourriez utiliser System.Diagnostics.Trace.Writeline si vous voulez être en mesure d'écrire à des "écouteurs" configurables dans les constructions non déboguées. (par défaut, ceci écrit dans la fenêtre de sortie de Visual Studio, tout comme Debug.Writeline )

2 votes

Je ne voyais pas ma sortie, mais j'ai ensuite réalisé que je devais exécuter le programme en mode débogage (F5) au lieu de Ctrl + Shift + F5. Merci !

0 votes

System.Diagnostics.Trace.Writeline ne semble cependant pas fonctionner, y a-t-il quelque chose d'autre que je doive configurer pour cela ?

1 votes

"1" - fausse déclaration. Le mono montre bien la sortie pour toutes les applications. "2" - bien sûr. Le problème est que la méthode n'affiche pas non plus les résultats dans le terminal. On ne peut donc pas déboguer une application sur le PC sans un IDE.

34voto

Ajouter un Console.Read(); à la fin de votre programme. Cela empêchera l'application de se fermer, et vous pourrez voir son résultat de cette façon.

Voici une application console que je viens de dénicher et qui s'arrête après le traitement mais avant la sortie :

class Program
{
    static void Main(string[] args)
    {
        DummyObjectList dol = new DummyObjectList(2);
        dol.Add(new DummyObject("test1", (Decimal)25.36));
        dol.Add(new DummyObject("test2", (Decimal)0.698));
        XmlSerializer dolxs = new XmlSerializer(typeof(DummyObjectList));
        dolxs.Serialize(Console.Out, dol);

        Console.WriteLine(string.Empty);
        Console.WriteLine(string.Empty);

        List<DummyObject> dolist = new List<DummyObject>(2);
        dolist.Add(new DummyObject("test1", (Decimal)25.36));
        dolist.Add(new DummyObject("test2", (Decimal)0.698));
        XmlSerializer dolistxs = new XmlSerializer(typeof(List<DummyObject>));
        dolistxs.Serialize(Console.Out, dolist);
        Console.Read(); //  <--- Right here
    }
}

Sinon, vous pouvez simplement ajouter un point d'arrêt sur la dernière ligne.

2 votes

Console.ReadLine fonctionne également, il suffit d'appuyer sur la touche Entrée pour continuer, alors que Read prend n'importe quelle touche standard.

0 votes

Il s'agit d'une application Windows form, et les méthodes debug.write et console.writeline semblent fonctionner.

0 votes

Euhm, pourquoi envoyez-vous des données à la console depuis une application Windows Form ? Je suggère d'effectuer la sortie sur un formulaire ou une dialgbox à la place. Ou faire une application console...

21voto

waqasahmed Points 1425

Appuyez sur Ctrl + F5 pour exécuter le programme au lieu de F5 .

2 votes

Ctrl + F5 lance l'application sans déboguer pour que vous ne voyiez rien dans la fenêtre de sortie.

6 votes

Cela a fonctionné pour moi ; je voulais juste voir ce que le programme produisait, aucune sortie de la console ne s'affichait. Cela a fait en sorte que la fenêtre de la console reste ouverte après l'exécution pour que je puisse voir la sortie.

0 votes

+1, c'est la solution, si vous ne voulez pas réellement déboguer (affiche la console, et permet de lire la sortie).

8voto

lordcheeto Points 629

System.Diagnostics.Debug.WriteLine() fonctionnera, mais vous devez regarder au bon endroit pour la sortie. Dans Visual Studio 2010, dans la barre de menus, cliquez sur Déboguer -> Windows -> Sortie . Maintenant, en bas de l'écran, à côté de votre liste d'erreurs, il devrait y avoir un onglet de sortie. Cliquez dessus et vérifiez que la sortie du flux de débogage est bien affichée dans la liste déroulante.

P.S. : Je pense que la fenêtre de sortie s'affiche sur une nouvelle installation, mais je ne m'en souviens pas. Si ce n'est pas le cas, ou si vous l'avez fermée par accident, suivez ces instructions.

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