当我运行此代码时,输出窗口顶部的数字是99701.为什么我不能一直看到1?我实际上看到所有数字都输出了,但是在控制台窗口,我只能滚动到足以看到99701(我猜)。我在Vista Home上使用Visual C#express。 :d
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using utilities;
namespace Testing_Project {
class Program {
static void Main(string[] args) {
List<string> myList = new List<string>();
for (int x = 0; x < 100000; x++)
myList.Add( x.ToString() );
foreach (string s in myList) {
Console.WriteLine(s);
}
Console.Read();
}
}
}
Console.Write(s)运行正常,但Console.Write(s +“\ n”)没有。我猜我只能向上滚动这么多新行?
答案 0 :(得分:26)
从.Net Framework 2.0及更高版本,您可以使用Console.BufferHeight在您自己的程序中更改缓冲区高度:
Console.BufferHeight = Int16.MaxValue - 1; // ***** Alters the BufferHeight *****
List<string> myList = new List<string>();
for (int x = 0; x < 100000; x++)
myList.Add(x.ToString());
foreach (string s in myList) {
Console.WriteLine(s);
}
最大高度为Int16.MaxValue - 1.
答案 1 :(得分:11)
300似乎是您的默认控制台缓冲区大小。这是Windows设置,与您的应用程序无关。
您可以通过创建可执行文件的快捷方式来更改控制台缓冲区大小。然后右键单击快捷方式并选择“属性”。进入“选项”选项卡并更改缓冲区大小。
似乎我没有在很长一段时间内检查该功能,但它现在似乎可以修改。见Alfred Myers answer
答案 2 :(得分:3)
控制台不是你的应用程序。
作为替代方法,您可以使用Debug.WriteLine(System.Diagnostics)并使用Visual Studio中的“输出”窗口。它有一个更大的缓冲区(只需确保运行Debug构建)。
答案 3 :(得分:2)
您不会再看到它了,因为默认情况下控制台不会缓冲超过300行。使用控制台的设置对话框来更改此设置 - 我相信您只需启动命令提示符并在那里更改它们,然后运行您的程序。
Alfred已经指出了你的应用程序如何改变缓冲区高度。
答案 4 :(得分:2)
这与C#无关,但实际上命令提示符中的输出缓冲区默认只有300行。您可以在窗口设置中更改它,尽管这可能是尝试实现“更多”功能的机会,每次输出屏幕数据时都会突破循环。然后当你按一个键时,它会输出另一个屏幕,等等。