2

我想知道是否有更有效的方法来修改控制台中的文本。例如:如果我正在跟踪已发生的事件数量,我将打印

0 events have occurred

随着事件的发生,我想增加那个 0。

目前我正在以一种非常丑陋的方式做到这一点:使用 String 或 Stringbuilder 跟踪打印到控制台的所有内容,如果我需要进行任何更改,请更改字符串,清除控制台,将字符串打印到控制台。除了可能效率不高之外,当在短时间内进行太多更改时,它会以丑陋的方式显示,导致控制台“闪烁”。

提前致谢。

4

1 回答 1

1

诀窍是使用回车代码。这基本上将光标返回到同一行的开头。这与回车 + 换行 (vbCrLf) 不同,后者将光标置于下一行的开头。

在 VB 和 C# 中执行此操作的方法略有不同。

  • VB:使用 vbCr 代码。

  • C#:使用 \r 代码。

这是一些示例代码:

VB:

For i = 1 To 100
    Console.Write("Processing...{0}% complete  " & vbCr, i)
    System.Threading.Thread.Sleep(100)
Next

C#:

for (int i = 1; i <= 100; i++)
{
    Console.Write("Processing... {0}% complete\r", i);
    System.Threading.Thread.Sleep(100);
}  
于 2013-03-12T22:59:05.023 回答