首页 文章

在Visual Studio 2010中查看控制台的输出?

提问于
浏览
162

我正在编写一个带有一些输出的简单C#程序( Console.WriteLine("..."); ) . 问题是,每次运行它时,我都无法在输出窗口中看到程序的输出 .

已经检查了“程序输出”标签,我已经将所有输出重定向到中间窗口但无效 .

如何启用查看程序的输出?

我认为问题不在于我的代码 . 我尝试运行一个简单的程序,只输出一个字符串和readline“ala hello world”,我仍然无法看到任何输出 . 问题是我在错误的位置寻找输出或者Visual Studio表现出来 .

debug.write 方法也不起作用 .

使用 debug.Write ,这一切都有效,尽管它现在还不错 . 感谢所有有用的评论=)

9 回答

  • -4

    要保持打开您的Windows控制台并且不使用其他输出方法而不是标准输出流cout,请转到您的项目名称 - >属性 - >链接器 - >系统 .

    在那里,选择SubSytem选项卡并标记控制台(/ SUBSYSTEM:CONSOLE) . 完成此操作后,无论何时编辑,请使用Ctrl F5(无需调试启动),控制台将保持打开状态 . :)

  • 20

    由于某种原因,我经常遇到这种情况,我无法理解为什么没有提到这个解决方案:

    Click View → Output (or just hold Ctrl and hit W > O)

    然后,控制台输出将显示在Error List,Locals和Watch窗口所在的位置 .

    注意:我正在使用Visual Studio 2015 .

  • 8

    在Program.cs中,之间:

    static int Main(string[] agrs)
    {
    

    和其余的代码,添加:

    #if DEBUG
        int rtn = Main2(args);
        Console.WriteLine("return " + rtn);
        Console.WriteLine("ENTER to continue.");
        Console.Read();
        return rtn;
    }
    
    static int Main2(string[] args)
    {
    #endif
    
  • -1

    System.Diagnostics.Debug.WriteLine() 会起作用,但你必须在正确的位置寻找输出 . 在Visual Studio 2010中,在菜单栏上单击“调试” - >“Windows” - >“输出” . 现在,在错误列表旁边停靠的屏幕底部,应该有一个输出选项卡 . 单击它并仔细检查它是否显示下拉列表中调试流的输出 .

    P.S . :我认为输出窗口显示全新安装,但我不记得了 . 如果没有,或者您意外关闭它,请按照这些说明操作 .

  • 193

    您可以使用System.Diagnostics.Debug.WriteSystem.Runtime.InteropServices 方法将消息写入输出窗口 .

  • 0

    以下是一些要检查的事项:

    • 对于 console.Write/WriteLine ,您的应用必须是控制台应用程序 . (在解决方案资源管理器中右键单击该项目,选择 Properties ,然后查看“ Output Type " combo in the Application Tab -- should be " Console Application ”(注意,如果您确实需要Windows应用程序或类库,请不要将其更改为控制台应用程序以获取 Console.WriteLine ) .

    • 您可以使用 System.Diagnostics.Debug.WriteLine 写入输出窗口(显示VS中的输出窗口,得到 View | Output )请注意,这些写入仅发生在定义DEBUG条件的构建中(默认情况下,调试构建定义此,并发布版本不)

    • 如果您希望能够在非调试版本中写入可配置的"listeners",则可以使用 System.Diagnostics.Trace.Writeline . (默认情况下,这会写入Visual Studio中的“输出”窗口,就像 Debug.Writeline 一样)

  • 50

    在程序结束时添加 Console.Read(); . 它将使应用程序不会关闭,您可以通过这种方式查看其输出 .

    这是一个我刚刚挖出的控制台应用程序,它在处理之后但在退出之前停止:

    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
        }
    }
    

    或者,您可以在最后一行添加断点 .

  • 34

    按Ctrl F5键运行程序而不是F5 .

  • 0

    您可以创建2个小方法,一个可以在程序开头调用,另一个可以在结束时调用 . 您还可以使用Console.Read(),以便程序在最后一次写入行之后不会关闭 .

    这样,您可以确定何时执行功能以及程序何时存在 .

    startProgram()
    {
         Console.WriteLine("-------Program starts--------");
         Console.Read();
    }
    
    
    endProgram()
    {
        Console.WriteLine("-------Program Ends--------");
        Console.Read();
    }
    

相关问题