在C#中,我如何在同一行中打印字符串,每次打印结果时都替换该字符串?

时间:2019-07-19 19:11:22

标签: c# console-application

我正在尝试模拟从0%到100%的加载屏幕。

我使用的是Console.Write而不是WriteLine,但这只会将值与其他行一起打印,而不是替换最后一次打印。

for (int k = 0; k <=100; k++){
                    Console.Write($"[LOADING: {k}% ]");
                    Thread.Sleep(25);
                }

结果是:

[负载1%] [负载2%] [负载3%] [负载4%] [负载5%]

我希望有一个字符串将其替换为下一个打印值

2 个答案:

答案 0 :(得分:2)

只需在for循环的每次迭代中调用Console.Clear()来覆盖控制台中先前显示的任何文本。

for (int k = 0; k <=100; k++){
                Console.Clear()
                Console.Write($"[LOADING: {k}% ]");
                Thread.Sleep(25);
            }

答案 1 :(得分:0)

尝试一下

for (int k = 0; k <=100; k++){
                Console.SetCursorPosition(0, Console.CursorTop);
                Console.Write($"[LOADING: {k}% ]");
                Thread.Sleep(25);
            }