c#在旧行上方的控制台中添加新行

时间:2015-02-17 02:16:38

标签: c# console newline lines

    static void Main(string[] args)
    {
        int top, left;
        Console.WriteLine();
        Console.Write("Type here: ");

        for (int i = 0; i < 99; i++)
        {
            top = Console.CursorTop;
            left = Console.CursorLeft;

            Console.SetCursorPosition(0, Console.CursorTop - 1);
            Console.WriteLine("hi" + Environment.NewLine);
            Console.SetCursorPosition(left, top);         
        }


        Console.ReadKey();
    }

我希望结果在一个“Type Here:”之上有100“hi”,我希望能够在打印出hellos之前输出“Type Here:”我会喜欢任何帮助,因为我一直坚持这一段时间了。

1 个答案:

答案 0 :(得分:3)

恕我直言混合正常&#34; stdio&#34;输出和光标/窗口/缓冲区操作不是一个好主意,但无论如何。试试这个:

    static void Main(string[] args)
    {
        int top;
        Console.WriteLine();
        Console.Write("Type here: ");

        Console.WriteLine();

        for (int i = 0; i < 99; i++)
        {
            Console.WriteLine("hi" + Environment.NewLine);
        }

        top = Console.CursorTop;
        Console.MoveBufferArea(0, top - 199, Console.WindowWidth, 1, 0, top);

        Console.SetCursorPosition(11, Console.CursorTop);

        Console.ReadKey();

    }

请注意,这高度依赖于控制台缓冲区设置。 您应该考虑使用例如

设置缓冲区
Console.SetBufferSize(80, 500);