如何更新控制台输出文本?

时间:2013-05-10 10:30:13

标签: c#

我希望我的控制台应用程序的用户可以更新由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

有可能吗?

3 个答案:

答案 0 :(得分:1)

Console.Read 未读取上一个输出,而是等待输入。

Console.Read Method - MSDN

  

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

     

当您键入输入字符时,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并捕获书面文本,然后随意做任何事情......