在C#控制台窗口中打印

在C#控制台窗口中打印,c#,C#,我试图在C#控制台窗口中打印1820行。但是,当打印完成并且我查看控制台窗口时,我只能看到300行。这里有什么问题? 当我写入文件时,我可以看到1820行!因此,我将问题缩小到了输出控制台窗口大多数版本的Windows中的标准控制台窗口都有一个有限的缓存线,它们保留了300行,这听起来是一个合理的缓存 当您打开cmd.exe窗口,然后右键单击左上角的图标并从关联菜单中选择Properties时,您可以看到(并更改)该限制: 您可能可以增加该缓冲区的大小以提供更多的行—请记住,当控制台窗口打开时

我试图在C#控制台窗口中打印1820行。但是,当打印完成并且我查看控制台窗口时,我只能看到300行。这里有什么问题?
当我写入文件时,我可以看到1820行!因此,我将问题缩小到了输出控制台窗口

大多数版本的Windows中的标准控制台窗口都有一个有限的缓存线,它们保留了300行,这听起来是一个合理的缓存

当您打开
cmd.exe
窗口,然后右键单击左上角的图标并从关联菜单中选择
Properties
时,您可以看到(并更改)该限制:


您可能可以增加该缓冲区的大小以提供更多的行—请记住,当控制台窗口打开时,这些行将占用系统中的RAM

调整窗口的缓冲区大小:

  • 单击窗口左上角的图标
  • 性质
  • 布局
  • 屏幕缓冲区大小
  • 输入高度的最大值:9999

如果您需要更多,则需要使用GUI或写入文件并在文本编辑器中查看。

您可以使用Console.SetBufferSize()使控制台缓冲区变大:

class Program {
    static void Main(string[] args) {
        Console.SetBufferSize(Console.WindowWidth, 2000);
        // etc..
    }
}
--少量添加--

如果希望获得最大可能的缓冲区:

 Console.SetBufferSize(Console.WindowWidth, Int16.MaxValue-1);

不允许任何东西>=Int16.MaxValue

这实际上是最好的答案。