繁体   English   中英

异常Console.Write行为

[英]Unusual Console.Write behaviour

Console.Write的行为不正常。 我正在尝试创建一个类来处理到控制台特定区域的绘图,并且发生了一些非常奇怪的事情。 我不知道如何调试它。

当我将此代码放入:

string output;

for (int i = 0; i < Console.WindowHeight; ++i) {
    Console.SetCursorPosition(0, i);
    output = "";
    for (int j = 0; j < Console.WindowWidth; ++j) output += (i % 10).ToString();
    Console.Write(output);
}

我得到以下信息: http : //snag.gy/LrFcU.jpg (由于声誉限制-.-而被禁止发布图像)

但是当我这样修改它时:

string output;

for (int i = 0; i < Console.WindowHeight; ++i) {
    Console.SetCursorPosition(0, i);
    output = "";

    // take one character away from the string
    for (int j = 0; j < Console.WindowWidth - 1; ++j) output += (i % 10).ToString();

    Console.Write(output);
}

我明白了! http://snag.gy/jxLH8.jpg

WindowWidth是80,WindowHeight是25,并且缓冲区的宽度和高度都等于窗口的宽度和窗口的高度。

我在外部for循环的每个交互位置都重置了光标位置...为什么会省略第一行?

第一行并没有被忽略,只是它滚动到了视线之外。

您将在第一个版本中再添加一个字符,从而到达该行的末尾,并将插入号置于下一行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM