如何让用户删除已经被Console.ReadLine()读取的文本。

问题描述 投票:0回答:1

我想知道如何写一个程序来做这样的事情。

var text = Console.ReadLine();

并允许用户稍后擦除被读取的文本。但是,没有明确的方法可以做到这一点。我知道可以做到,因为有一些用c#写的文本编辑器。谁能给我指出正确的方向?

c# console operating-system console-application cosmos
1个回答
1
投票

这一切都取决于你想如何删除这一行。

你可以检查 Console.Clear可以用来只清除一行而不是整个控制台吗? 基本上就是用空字符串替换特定的一行。

SetCursorPosition文档

// Parameters left, top
Console.SetCursorPosition(0, Console.CursorTop - 1);
Console.Write(new string(' ', Console.WindowWidth)); 
Console.SetCursorPosition(0, Console.CursorTop);

这里的问题,是用户如何与控制台交互,让控制台知道要删除哪一行,因为随着新行的插入,行会发生变化,所以你需要找到一种方法,在插入第一行后再计算行。

所以每当你 WritelineReadline 你需要增加计数器来保持历史记录。如果你想为多行做,那么就会变得更加复杂。


1
投票

首先,请看一看可用于对 Console 为你正在使用的相应框架版本。可以调整光标的位置,这样就有了很多乐趣。

https:/docs.microsoft.comen-usdotnetapisystem.console.setcursorposition?view=netcore-3.1。

© www.soinside.com 2019 - 2024. All rights reserved.