基于C#的控制台的进度提示实现

在网上搜了很多关键词,比如C#控制台如何删除上一行输出,C#如何控制台删除部分内容,但是都没有很好的教程。

所以自己动手研究一下。也不是什么高深的东西,如下:

 

用C#开发了一个爬虫下载器,为了知道还剩下多少张图片未下载完,就在控制台里面写了一个剩余图片提示。

效果如下,相当丑陋:

 

那么有什么办法能在一行中输出这些信息,自动把上一行擦除呢?看下面的代码就可以了!

//System.Console.SetCursorPosition(0,4);//定位光标位置,第四行第一位
//System.Console.CursorTop;//获取已输出文本的行数
//System.Console.BufferWidth;//获取控制台的宽度
Console.WriteLine("downloading , wait a moment please ...");
for (int i = 0; i <= 100; i++)
{
    Thread.Sleep(100);
    Console.WriteLine("                    ");
    Console.SetCursorPosition(0, Console.CursorTop - 1);
    Console.Write(i + "% downloaded ...");
}
Console.WriteLine("\ndownload completely !");
Console.ReadKey();

效果图如下:

 

参考:

微软官方文档:Console.SetCursorPosition 方法 (Int32, Int32)

posted on 2017-08-28 17:44  chenyangsocool  阅读(3041)  评论(0编辑  收藏  举报