如何更新控制台输出文本
本文关键字:控制台 输出 文本 更新 何更新 | 更新日期: 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并捕获书面文本,然后对其进行任何操作…