有没有一个函数可以读取整个控制台?

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

我正在用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

获取当前在控制台窗口中的所有文本 并将其放入一个字符串中。这可能吗?

c# console console-application
1个回答
1
投票

我做的这个没有最后一行删除,但它应该能达到你想要的效果,试试吧。

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();
    }
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.