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/