【问题标题】:How to enter the input into the command line rather than within the code?如何将输入输入到命令行而不是在代码中?
【发布时间】:2019-06-18 08:50:46
【问题描述】:

这是压缩和解压缩 ASCII 的 Huffman 代码。我想在我运行一个程序输入我的输入之后创建一个命令,然后将其压缩并另一个命令解压缩。我只知道如何将我的输入放在代码中,但这不是我想要的。我希望它在我的命令框中。

internal class Program
{
    private const string Example = "this is an example for huffman encoding";

    private static void Main()
    {
        var huffman = new Huffman<char>(Example);
        List<int> encoding = huffman.Encode(Example);
        List<char> decoding = huffman.Decode(encoding);
        var outString = new string(decoding.ToArray());

        Console.WriteLine(outString == Example 
            ? "Encoding/decoding worked" 
            : "Encoding/Decoding failed");

        var chars = new HashSet<char>(Example);

        foreach (char c in chars)
        {
            encoding = huffman.Encode(c);
            Console.Write("{0}: ", c);

            foreach(int bit in encoding)
            {
                Console.Write("{0}", bit);
            }

            Console.WriteLine();
        }

        Console.ReadKey();
    }
}

【问题讨论】:

  • 启动程序时是否要输入输入作为命令行参数?或者将其输入到控制台应用程序的命令行用户界面中?或者你想用管道输入吗?还是放在配置文件中?这么多选择。
  • Console.ReadLine。例如,请参阅stackoverflow.com/questions/56640265/investment-balance-in-c
  • 请控制台应用程序的命令行用户界面

标签: c#


【解决方案1】:

不确定这是否是您要查找的内容,但您可以使用 Console.ReadLine() 从命令行读取输入。如果您正在寻找不同的东西,您可能想澄清您的问题。 Console.ReadLine() 示例如下:

internal class Program
  {
    private static void Main()
    {
        Console.Write("Type input text here: ");
        var inputText = Console.ReadLine();
        var huffman = new Huffman<char>(inputText);
        List<int> encoding = huffman.Encode(inputText);
        List<char> decoding = huffman.Decode(encoding);
        var outString = new string(decoding.ToArray());
        Console.WriteLine(outString == inputText ? "Encoding/decoding 
    worked" : "Encoding/Decoding failed");

        var chars = new HashSet<char>(inputText);
        foreach (char c in chars)
        {
            encoding = huffman.Encode(c);
            Console.Write("{0}: ", c);
            foreach(int bit in encoding)
            {
                Console.Write("{0}", bit);
            }
            Console.WriteLine();
        }
        Console.ReadKey();
    }

更多关于 Console.ReadLine 的信息在这里:https://docs.microsoft.com/en-us/dotnet/api/system.console.readline?view=netframework-4.8

【讨论】:

  • 有没有办法在不同的命令行上分别压缩和解压?
  • 我认为我对您的问题的理解可能从根本上缺少一些东西,但我认为您是在问是否可以压缩文本,然后在单独的窗口中解压缩文本?这将有助于理解您的目标,但如果我不得不猜测,我认为您正在寻找的内容将需要某种方式来存储从输入中获取的值。您可以将其写入文件,如下所示:docs.microsoft.com/en-us/dotnet/csharp/programming-guide/…。然后,从另一边,你会从这个文件中读取它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-08
  • 1970-01-01
  • 2010-12-19
  • 2014-05-15
  • 1970-01-01
  • 2012-06-30
  • 2011-03-15
相关资源
最近更新 更多