【问题标题】:Visual Studio 2013 - How do I view output in the console?Visual Studio 2013 - 如何在控制台中查看输出?
【发布时间】:2014-03-28 13:02:17
【问题描述】:

我是 C# 和 VS 的新手,我只是想使用 Console.WriteLine(...) 打印一行,但它只显示在命令提示符中。有没有办法让输出显示在输出窗口中?

编辑:这是一个控制台应用程序。

另外,我如何访问命令行以运行程序?我只能弄清楚如何使用 F5 运行,但如果我需要输入参数,这将不起作用。

【问题讨论】:

  • 这是一个控制台应用程序。
  • 请澄清您的条款。 “命令行”是什么意思,例如“但它只显示在命令行中”。 “控制台”是什么意思,例如“有没有办法让输出显示在控制台中?”?
  • @Aei,试试 Debug.WriteLine();
  • @martynaspikunas 编辑器似乎无法识别 Debug 这个名称。
  • 您需要解决命名空间问题。用鼠标右键单击调试类并选择解决选项。

标签: c# console visual-studio-2013 output


【解决方案1】:

如果是 ConsoleApplication,那么Console.WriteLine 将写入控制台。如果您使用Debug.Print,它将打印到底部的输出选项卡。

如果要添加命令行参数,可以在项目属性中找到。点击Project -> [YourProjectName] Properties... -> Debug -> Start Options -> Command line arguments。此处的文本将在运行时传递给您的应用程序。您也可以在构建后通过bin\Releasebin\Debug 文件夹在构建后运行它,通过cmd 或您喜欢的任何方式运行它。我发现以这种方式测试各种参数比每次都设置命令行参数更容易。

【讨论】:

    【解决方案2】:

    是的,我在使用 VS2012 的前 2 天也遇到了这个问题。我的控制台输出在哪里?它闪烁并消失。被有用的例子迷惑了,比如

    https://code.msdn.microsoft.com/101-LINQ-Samples-3fb9811b

    好的,确实是@martynaspikunas .. 技巧,您可以将 Console.WriteLine() 替换为 Debug.WriteLine() 以在 IDE 中查看它。它会一直呆在那里,很好。

    但有时您必须更改现有代码中的很多地方才能做到这一点。

    我确实找到了一些替代品.. 一个怎么样

    Console.ReadKey();
    

    在 Program.cs 中?控制台会等你,它可以滚动..

    我也喜欢在我的 Winforms 上下文中使用控制台输出:

     class MyLogger : System.IO.TextWriter
        {
            private RichTextBox rtb;
            public MyLogger(RichTextBox rtb) { this.rtb = rtb; }
            public override Encoding Encoding { get { return null; } }
            public override void Write(char value)
            {
                if (value != '\r') rtb.AppendText(new string(value, 1));
            }
        }
    

    在你的主表单类之后添加这个类。然后将其插入,在构造函数中使用以下重定向语句,在 InitializeComponent() 被调用之后:

     Console.SetOut(new MyLogger(richTextBox1));
    

    因此,您的所有 Console.WriteLine() 都将出现在 RichTextBox 中。

    有时我使用它重定向到列表以稍后报告控制台,或将其转储到文本文件。

    注意:MyLogger 代码 sn-p 是 Hans Passant 在 2010 年放在这里的,

    Bind Console Output to RichEdit

    【讨论】:

      【解决方案3】:

      这是一个保持控制台及其输出的简单技巧:

      int main ()
      {
          cout << "Hello World" << endl ;
      
          // Add this line of code before your return statement and the console will stay up
          getchar() ;  
      
          return 0;
      }
      

      【讨论】:

      • 这个答案是错误的,因为它使用 C++ 而 OP 要求 C#
      【解决方案4】:
      using System;
      #region Write to Console
      /*2 ways to write to console
       concatenation
       place holder syntax - most preferred
       Please note that C# is case sensitive language.
      */
      #region
      namespace _2__CShrp_Read_and_Write
      {
          class Program
          {
              static void Main(string[] args)
              {
      
                  // Prompt the user for his name
                  Console.WriteLine("Please enter your name");
      
                  // Read the name from console
                  string UserName = Console.ReadLine();
                  // Concatenate name with hello word and print
                  //Console.WriteLine("Hello " + UserName);
      
                  //place holder syntax
                  //what goes in the place holder{0}
                  //what ever you pass after the comma i.e. UserName
                  Console.WriteLine("Hello {0}", UserName);
                  Console.ReadLine();
              }
          }
      }
      I hope this helps
      

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-09
        • 1970-01-01
        • 2017-05-16
        相关资源
        最近更新 更多