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

c# adding new lines to a console above old 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();
    }

我希望结果有 100 "hi" 高于 1 "Type Here: " 并且我希望能够在打印出你好之前输出 "Type Here: " 我希望得到任何帮助,因为我已经坚持了一段时间。

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

    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);