После печати нескольких строк в окне консоли, как получить bach на первой строке для печати новых данных - PullRequest
0 голосов
/ 24 февраля 2010

После печати некоторых данных (a, b, c)

а

б

с

на экране консоли, как вернуться к первой строке и напечатать x, y, z вот так

х

б

c z

Ответы [ 3 ]

2 голосов
/ 24 февраля 2010
static void Main(string[] args)
{
    Random rand = new Random();
    int maxShoots = 100;

    Console.Clear();
    for (int loop = 0; loop < maxShoots; loop++)
    {
        Console.CursorLeft = rand.Next(Console.WindowWidth);
        Console.CursorTop = rand.Next(Console.WindowHeight);
        Console.Write("x");

        Console.CursorLeft = 0;
        Console.CursorTop = 0;
        Console.Write("Iteration " + loop);

        Thread.Sleep(rand.Next(100));
    }

    Console.CursorLeft = 0;
    Console.CursorTop = Console.WindowHeight-1;
    Console.ReadKey();
}
1 голос
/ 24 февраля 2010

Вы должны будете использовать явное позиционирование курсора, чтобы это работало на консоли, это может быть что-то вроде этого:

public class SomeCharPos{
   private char ch;
   private int row, col;
   public SomeCharPos(char ch, int row, int col){
      this.ch = ch;
      this.row = row;
      this.col = col;
   }
   public char SomeChar{
      get{ return this.ch; }
   }
   public int Row{
      get{ return this.row; }
   }
   public int Col{
      get{ return this.col; }
   }
}

public class DemoIt{
   public Dictionary thisDict = new Dictionary();
   public DemoIt(){
       thisDict.Add('a', new SomeCharPos('a', 1, 1));
       thisDict.Add('b', new SomeCharPos('a', 2, 1));
       thisDict.Add('c', new SomeCharPos('a', 3, 1));
          ....
       thisDict.Add('x', new SomeCharPos('x', 1, 3));
       thisDict.Add('y', new SomeCharPos('x', 2, 3));
       thisDict.Add('z', new SomeCharPos('x', 3, 3));
   }
   public void DrawIt(){
       foreach (SomeCharPos pos in thisDict.Values){
          Console.SetCursorPosition(pos.Col, pos.Row);
          Console.Write(pos.SomeChar);
       }
   }
}

Надеюсь, это поможет, С наилучшими пожеланиями, Том.

1 голос
/ 24 февраля 2010

Вы можете управлять курсором через Console.CursorTop, Console.CursorLeft свойства.

...