如何更新控制台输出文本

本文关键字:控制台 输出 文本 更新 何更新 | 更新日期: 2023-09-27 18:13:03

我希望我的控制台应用程序的用户可以更新由console . write()编写的文本;例如:

var currentVar="bla-bla-bla";
Console.Write(currentVar);
var newVar=Console.Read();//here user can update previous output of Write() method;
Console.Write(newVar);//output of updated value

有可能吗?

如何更新控制台输出文本

Console.Read 不读取前面的输出,而是等待输入。

Console.Read Method - MSDN

从标准输入流中读取下一个字符。

Read方法在您键入输入字符时阻止其返回;它在按Enter键时终止。按Enter键会在后面加a与平台相关的行终止序列到您的输入(for例如,Windows附加一个回车-换行序列)。对Read方法的后续调用检索输入的一个字符一次。在检索到最后一个字符后,Read阻塞它的再次返回,循环重复。

如果您打算用新内容覆盖以前的输出,则使用Console.SetCursorPosition。还可以查看这个答案

我认为这就是你想要做的。

    Console.WriteLine("Original");
    var newVar=Console.Read();
    Console.SetCursorPosition(0, Console.CursorTop -2); // Where -2 moves the cursor two lines up.
    Console.WriteLine(newVar);

然而,您将覆盖下一行,因为光标将只是向下移动。您将需要使用控制台。再次SetCursorPosition,将光标放回到你想要的位置

您应该用自己的实现替换StandardOutput并捕获书面文本,然后对其进行任何操作…