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

标签 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”并且我希望能够在打印出 hello 之前输出“Type Here:”我希望得到任何帮助,因为我一直坚持这有一段时间了。

最佳答案

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

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

关于c# 在旧行上方的控制台中添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28553625/

相关文章:

c++ - 如何让 C++ 控制台每次都在同一个位置显示 cin

.net - 在.NET标签中插入换行符

string - Haskell 写入 '\n' 而不是换行符

c# - 更改成员资格连接字符串

google-chrome - 提取XPath并在Google Chrome中运行

c# - 将 RadioButtons 绑定(bind)到单个属性?

Node.js 完整控制台重定向到文件

lua - corona sdk 在创建线路时出错

c# - VS2010 的测试列表编辑器在 VS2012 中的功能(更新)

c# - 根据日期合并列表中的数据