2013-03-14 21 views
5

Konsolda C# satırında nasıl bir çizgi silinebilir?Konsolda bir satının temizlenmesi

Bir satırın başında imleci nasıl biliyorum:

Console.SetCursorPosition(0, Console.CursorTop); 
+2

Google arkadaşın http://msdn.microsoft.com/en-us/library/system.console.clear.aspx <- ilk google sonucu, ilk satır için sonuç: http://stackoverflow.com/questions/5027301/c-keskin-temizle-konsol-son öğe-ve-yerine-yeni-konsol-animasyon \ –

cevap

10

En basit yöntem yaptığı gibi, satırın başlangıcına taşımak ve ardından bir dizi yazmak olacaktır Satırın uzunluğu ile aynı uzunlukta boşluklar.

Console.Write(new String(' ', Console.BufferWidth)); 
+2

Bu benim için yeni bir çizgi için sarın gibi görünüyor. Console.Write (new String ('', Console.BufferWidth - 1)) hakkında ne dersiniz? –

+0

emin olun ... sadece tüm satırı yazıyor! Daha sonra bir satır yukarı çık. -1 yaparsanız, bir karakterin yanından ayrılırsınız! – Zordid

2

Konsol tamponu satırının son alanı kullanıldığında, konsol imleci otomatik olarak sonraki satıra atlar.

  1. Sıfırlama imleç başlangıca geri o
  2. Silme eski konsol üretimi oldu satıra
  3. Sıfırlama imleç geri sonraki satırda imleci yerleştirerek sadece

    while (true) 
    { 
        Console.Write("."); 
        if (Console.CursorLeft + 1 >= Console.BufferWidth) 
        { 
        Console.SetCursorPosition(0, Console.CursorTop); 
        Console.Write(Enumerable.Repeat<char>(' ', Console.BufferWidth).ToArray()); 
        Console.SetCursorPosition(0, Console.CursorTop - 1); 
        } 
    
        if (Console.KeyAvailable) 
        break; 
    } 
    
  4. temizlenir konsolunun kenar ulaşmadan önce
0

(burada at.toulan birleştiren ve Andrew cevapları.)

En basit olduğunu, son satırı üzerinde üzerine yazmak:

"metnin yeni hat" Andrew diyor gibi, metin yazmadan önce boşluk yazabilir, daha önce orada metnin daha kısaysa
Console.SetCursorPosition(0, Console.CursorTop - 1) 
Console.WriteLine("new line of text"); 

.