c# adding new lines to a console above old lines

c#, console, lines, newline

Solution

IMHO mixing normal "stdio" output and cursor / window / buffer manipulation not a good idea, but anyway. Try this:

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

    }

Be aware that this is highly dependent on console buffer settings. You should consider setting the buffer with e.g.

Console.SetBufferSize(80, 500);

Problem

``` 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(); } ``` I want the result to have 100 "hi" above one "Type Here: " and I want to be able to output the "Type Here: " before printing out the hellos I would love any help as I have been stuck with this for a while.

Original source