Pourquoi Console.Writeline, Console.Write ne fonctionnent-ils pas dans Visual Studio Express?


169

Je viens d'ouvrir une application console et je tape

Console.WriteLine("Test");

Mais la fenêtre de sortie ne montre pas cela. Je vais à la fenêtre de sortie avec Ctrl + W, O

Mais rien ne s'affiche lorsque je lance mon programme, suis-je fou ou est-ce que cela n'est pas pris en charge dans le Visual Studio 2010 Express?


3
Comme Leifdit, il disparaît avant que vous ne puissiez le voir. UtilisationConsole.ReadKey()
Xaqron

Voir aussi stackoverflow.com/a/1583569/503688 pour un mécanisme pour rediriger la sortie de la console vers la fenêtre de sortie de débogage.
yoyo

Réponses:


301

Console.WriteLineécrit votre sortie dans la fenêtre de la console ouverte par votre application (pensez à la fenêtre noire avec du texte blanc qui apparaît lorsque vous ouvrez l'invite de commandes.) Essayez à la System.Diagnostics.Debug.WriteLineplace.


26
La sortie de débogage apparaît dans la fenêtre Sortie (Debug => Windows => Sortie). Le mien n'était pas ouvert par défaut.
Appulus

1
S'il n'y a pas de sortie dans la fenêtre de la console, vérifiez également les propriétés de l'application sous l'onglet Débogage Options de démarrage pour vous assurer que vous n'avez aucun argument de ligne de commande redirigeant la sortie de la console.
Chad Miller

Et utilisez un outil tel que technet.microsoft.com/en-us/sysinternals/debugview.aspx DebugView (dbgview) pour recevoir les messages de débogage car ils n'apparaîtront pas sur la console cmd.
Roger Deep

19

Accédez aux propriétés de votre propre projet dans la Solution Explorerfenêtre et choisissez le type d'application, recherchez Output Type et modifiez sa valeur en Console Application. Cela rendra l'écran de la console en plus de votre formulaire. Si vous fermez l'écran de la console, votre formulaire sera également fermé.

Bonne chance.


Faites ma journée! Je peux parcourir ma requête LINQ et écrire sur la console maintenant, ce qui est un moyen rapide et bon marché d'obtenir les données correctes dans la mêlée.
JustJohn

15

Peut-être que la console s'efface. Essayer:

Console.WriteLine("Test");
Console.ReadLine();

Et j'espère qu'il restera là jusqu'à ce que vous appuyiez sur Entrée.


15

Aucune réponse satisfaisante fournie.

System.Diagnostics.Debug.WriteLine() écrira des messages dans la fenêtre Output: debug, mais tant de merde est constamment déversée dans cette fenêtre par chaque processus sous le soleil, c'est comme trouver une aiguille dans une botte de foin pour trouver VOS messages.

Console.WriteLine()n'écrit dans aucune fenêtre de Visual Studio. Je suppose que cela n'écrira sur la console d'application que si votre application crée une console en premier lieu, c'est-à-dire s'il s'agit d'une application console.

Pourquoi l'outillage simplifie-t-il la tâche consistant à demander au code .cs de code côté serveur d'applications Web d'écrire des messages de débogage dans une fenêtre inondée de merde, ce qui rend presque impossible de trouver vos informations?


6

Ou vous pouvez déboguer par CTRL+F5cela ouvrira ConsoleWindow attend après la dernière ligne exécutée jusqu'à ce que vous appuyiez sur la touche.


8
Eh bien, ce n'est pas vraiment du «débogage», c'est juste lancer l'application sans attacher le débogueur. : /
damian

5

C'est plus que probable parce que vous avez utilisé la console dans l'espace de noms. Par exemple comme ceci:

namespace XYZApplication.Console
{
    class Program
    {
        static void Main(string[] args)
       {
            //Some code;             
       }
    }
}

Essayez de le supprimer de l'espace de noms ou utilisez plutôt l'espace de noms complet ie

   System.Console.Writeline("abc");

1
Je n'avais aucune autre console dans mon application, mais l'ajout m'a System.aidé. Merci.
kolenda

4

La fenêtre de sortie n'est pas la console. Essayez les méthodes deSystem.Diagnostics.Debug


4

Dans l'application Winforms, les deux méthodes:

System.Diagnostics.Debug.WriteLine("my string")

et

System.Console.WriteLine("my string")

écrire dans la fenêtre de sortie.

Dans l'application AspNetCore, System.Diagnostics.Debug.WriteLine("my string")écrit uniquement dans la fenêtre de sortie.


3

Essayez ctrl + F5, il tiendra votre écran jusqu'à ce que vous appuyiez sur une touche. Cordialement


2

Faites un clic droit sur le projet dans l'explorateur de solutions et cliquez sur "nettoyer".

Maintenant, cours F5

Assurez-vous que le code est comme ci-dessous:

Console.WriteLine("TEST");
Console.ReadLine();

1

Je rencontre un problème similaire lors de l'exécution d'un test unitaire. Console.WriteLine()n'a rien écrit dans la fenêtre de sortie VS.

L'utilisation a System.Diagnostics.Debug.WriteLine()résolu le problème.


1

Si vous utilisez Ctrl-F5 (démarrer sans débogage), la fenêtre de la console sera ouverte avec un message "Appuyez sur n'importe quelle touche pour continuer". C'est le moyen le plus simple d'empêcher la fenêtre de la console de se fermer afin que vous puissiez voir la sortie de la console.


1

Allez dans le menu Déboguer et sélectionnez Options et décochez "Rediriger tout le texte de la fenêtre de sortie vers la fenêtre immédiate"


0

Console.Writeline() apparaît dans la sortie de débogage (Debug => Windows => Sortie).


7
Non, System.Diagnostics.Debug.WriteLine écrit dans Debug => Windows => Output, mais pas Console.WriteLine
Vitalii Korsakov

1
La personne qui pose la question utilise une application Console, où Console.WriteLine () écrit bien sûr dans la Console, qui est la fenêtre d'application de couleur noire, ressemblant à une fenêtre DOS. Console.WriteLine () écrit uniquement dans la fenêtre de sortie de débogage, lorsqu'il ne s'agit pas d'une application de console.
Peter Huber

«Console.WriteLine () écrit uniquement dans la fenêtre de sortie de débogage, lorsqu'il ne s'agit pas d'une application de console.» Pourquoi?
sydd

0

Si vous développez une application en ligne de commande, vous pouvez également utiliser Console.ReadLine()à la fin de votre code pour attendre la touche «Entrée» avant de fermer la fenêtre de la console afin de pouvoir lire votre sortie.



0

Solution de contournement, j'ai trouvé:

Appuyez sur Ctrl + Alt + Iou accédez à "Onglet Débogage" ---> "Windows" ---> "Immédiat".

Dans votre code, écrivez:

Trace.WriteLine("This is one of the workaround");

0

La fenêtre de sortie de Visual Studio 2017 a un menu appelé Afficher la sortie à partir de , dans mon cas, ASP.NET Core Web Server était l'option à sélectionner afin de voir l'impression, je suis tombé sur ce problème car je l'avais réglé sur Build afin Je ne voyais pas les lignes imprimées au moment de l'exécution.


0

Il y a 2 problèmes possibles:

  • Tout d'abord, vous n'avez pas utilisé le using System qui devrait être avant d’écrire du code qui utilise la «classe système», commeConsole.WriteLine()
  • Deuxièmement, vous n'avez pas codé ce qui se passe après que la console affiche "Test"

La solution possible sera:

using System;

namespace Test
{
    public static Main()
    {
        //Print to the console
        Console.WriteLine("Test");

        //Allow user to read output
        Console.ReadKey();
    }
}

Il est également stratégique de coder Console.Write("Press any key to exit...");sur la ligne qui précède le Console.ReadKey();pour faire savoir à l'utilisateur que le programme se termine, il doit appuyer sur n'importe quelle touche pour quitter.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.