是否有读取整个控制台的功能?
Is there a function to read the entire console?
我正在用 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
获取控制台中当前的所有文本 window 并将其放入字符串中。这可能吗?
我在没有删除最后一行的情况下完成了此操作,但它应该可以满足您的需求,试一试:
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();
}
}
我正在用 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
获取控制台中当前的所有文本 window 并将其放入字符串中。这可能吗?
我在没有删除最后一行的情况下完成了此操作,但它应该可以满足您的需求,试一试:
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();
}
}