在網上搜了很多關鍵詞,比如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();
效果圖如下:
參考: