没有正确获取命令行参数输出

时间:2014-02-01 23:51:45

标签: c#

我正在尝试显示作为输入输入的命令行参数的数量。这是我的代码块。

//Argument: A, B, C, D

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ParamaterCount
{
    public class ParameterCount
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World");
            Console.WriteLine("You have entered {0} command line arguments",args.Length);
            Console.ReadLine();
            for (int i = 0; i < args.Length; i++)
            {
                Console.WriteLine("{0}", args[i]);
            }
        }
    }
}

然而,当我试图运行它时。它离开了屏幕,我什么都没得到。我还添加了Console.ReadLine()语句,但我无法进入For循环内部来计算迭代次数。我错过了什么吗? 谢谢。

输出应该是这样的。

Hello World,
You entered 4 Command Line Arguments
A
B
C
D

5 个答案:

答案 0 :(得分:1)

在控制台应用程序中,参数不会像那样工作。您的代码非常好,但请注意您必须在运行时输入参数,但由于在运行时调用的第一个方法是Main(),因此您没有机会提供命令行参数。为了实现您的目标,您必须从命令行运行已编译的输出应用程序,假设您的应用程序名称为ConsoleApplication.exe,因此打开命令行,然后运行ConsoleApplication.exe,如下所示:

ConsoleApplication.exe A B C …

有关详细信息,请参阅:Command-Line Arguments

BTW:您总是可以使用 ctrl + F5 而不是 F5 来运行您的控制台应用程序,这将产生与您相同的结果在你的申请结束时写了Console.ReadLine()

答案 1 :(得分:0)

您应该在Console.ReadLine()方法的末尾移动Main语句。 所以你的代码应该是这样的:

public static void Main(string[] args)
{
    Console.WriteLine("Hello World");
    Console.WriteLine("You have entered {0} command line arguments",args.Length);

    for (int i = 0; i < args.Length; i++)
    {
        Console.WriteLine("{0}", args[i]);
    }
    Console.ReadLine();
}

答案 2 :(得分:0)

尝试:

 public static void Main(string[] args)
{
    Console.WriteLine("Hello World");
    Console.WriteLine("You have entered {0} command line arguments {1}",args.Length, string.Join(" ", args);

    Console.ReadLine();
}

答案 3 :(得分:0)

删除console.readline()语句,而不是从控制台运行程序时提供输入。我不知道c#但是在java中你可以完成以下任务。

javac s.java
java s A B C D

答案 4 :(得分:0)

实际上,您不需要使用Console.ReadLine(),因为它会读取输入流,而不是您提供的参数。

这就是你需要的代码;

Console.WriteLine("Hello World");
Console.WriteLine("You have entered {0} command line arguments", args.Length);
for(int i = 0; i < args.Length; i++)
{
    Console.WriteLine("{0}", args[i]);
}

然后按照以下步骤操作;

  • 转到Run并输入cmd.exe这是命令行的快捷方式
  • 使用cd(在我的示例中为cd C:\Users\Soner\Documents\Visual Studio 2012\Projects\ProgramConsole\ProgramConsole\bin\Debug
  • 转到您的exe文件夹
  • 使用它的名称和A B C D(在我的示例中为ProgramConsole.exe A B C D
  • 运行您的exe

输出将是;

Hello World
You have entered 4 command line arguments
A
B
C
D

enter image description here