我希望我的控制台应用程序的用户可以更新由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
有可能吗?
答案 0 :(得分:1)
Console.Read
未读取上一个输出,而是等待输入。
从标准输入流中读取下一个字符。
当您键入输入字符时,Read方法会阻止其返回;它 按Enter键时终止。按Enter键附加一个 平台相关的线路终端序列到您的输入(for 例如,Windows附加一个回车换行序列)。 对Read方法的后续调用将检索输入的一个字符 一次。检索到最后一个字符后,Read会阻止它 再次回来,循环重复。
如果您打算使用新内容覆盖以前的输出,请使用Console.SetCursorPosition
。另请参阅this answer
答案 1 :(得分:1)
我认为这就是你要做的。
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将光标放回到您想要的位置。
答案 2 :(得分:0)
您应该用自己的实现替换StandardOutput并捕获书面文本,然后随意做任何事情......