我正在用C#做一个程序,我想让一个程序做这样的事情。
while (true)
{
var Key = Console.ReadKey();
if (Key.Key == ConsoleKey.Backspace)
{
Console.SetCursorPosition(0, Console.CursorTop - 1);
Console.Write(new string(' ', Console.WindowWidth));
}
else
{
Console.ReadLine();
}
}
然后做这样的事情:
Console.ReadAllTextInConsole
获取当前在控制台窗口中的所有文本 并将其放入一个字符串中。这可能吗?
我做的这个没有最后一行删除,但它应该能达到你想要的效果,试试吧。
class Program
{
static void Main(string[] args)
{
var console = new ConsoleV2();
while (true)
{
var input = Console.ReadLine();
if (input != "print")
{
console.WriteLine(input);
}
else
{
Console.WriteLine(console.GetOutput());
}
}
}
}
public class ConsoleV2
{
private readonly StringBuilder _stringBuilder;
public ConsoleV2()
{
_stringBuilder = new StringBuilder();
}
public void Write(string format, params object[] args)
{
_stringBuilder.Append(string.Format(format, args));
Console.Write(format, args);
}
public void WriteLine(string format, params object[] args)
{
_stringBuilder.AppendLine(string.Format(format, args));
Console.WriteLine(format, args);
}
public string GetOutput()
{
return _stringBuilder.ToString();
}
}