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

C# 如何更新控制台输出文本?,c#,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 可能吗?控制台。Read不会读取以前

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

可能吗?

控制台。Read
不会读取以前的输出,而是等待输入

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

当您键入输入字符时,Read方法阻止其返回;信息技术 按Enter键时终止。按Enter键可附加一个 输入端的平台相关线路终止顺序(用于 例如,Windows附加了一个回车换行符(换行符序列)。 对Read方法的后续调用将检索输入的一个字符 一次。检索到最后一个字符后,Read将阻止其读取 再次返回,循环重复


如果您打算用新内容覆盖以前的输出,请使用。另请参见

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

我认为这就是您正在尝试的操作

    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将光标放回您想要的位置。

那么我可以做些什么来修改以前的输出?@SimonD您是否试图覆盖以前的输出,以便用户可以看到前一行的新条目?@SimonD,您无法从ouptut控制台读取以前的行,相反,您可以将光标设置到某个位置并在该位置写入,请参阅,使用
Console.SetCursorPosition(0,Console.CursorTop)
当然,你应该保持父行为,这样文本就可以一直输出到控制台。最快的方法是清除控制台,然后将文本连同编辑一起显示。。。。