我希望我的控制台应用程序的用户可以更新由 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.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
不读取先前的输出,而是等待输入。
从标准输入流中读取下一个字符。
当您键入输入字符时,Read 方法会阻止其返回;当您按下 Enter 键时,它会终止。按 Enter 会在您的输入中附加一个依赖于平台的行终止序列(例如,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);
然后,您将覆盖下一行,因为光标只会向下移动。您将需要再次使用 COnsole.SetCursorPosition 将光标放回您想要的位置。
您应该用自己的实现替换 StandardOutput 并捕获书面文本,然后用它做任何你想做的事情......