实现命令行参数

时间:2013-05-16 06:41:52

标签: c command character command-line-arguments

我必须使用以下签名实现main函数:

    int main(int argc, char *argv[])

什么是命令行参数,为什么我不需要它的测试用例?他们的“签名”是什么意思?它只是功能原型吗?

我肯定会编辑这个问题,以便在我澄清这些事情之后包括我对解决方案的尝试。

我对这个程序本质上做了什么感到困惑,我可以看到它返回一个整数值,但该整数值代表什么?另外,如何使用参数列表中指定的参数返回整数值?他们的意思是什么?谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

虽然这是一个很难说的问题,但我觉得有义务帮助缓解你的困惑。

这是一个程序,它打印出它的名字(argv[0]),而需要至少一个参数。如果没有给出至少一个参数,则返回1表示失败。否则,它打印出它的参数并返回0表示成功(对shell或者任何启动它的人)。

#include <stdio.h>

int main(int argc, char *argv[])
{
    int i;

    printf("Hello World, my name is \"%s\" \n", argv[0]);

    if (argc < 2) {
        printf("I require at least 1 argument! Exiting!\n");
        return 1;  // Indicate failure.
    }


    printf("I was given %d command-line arguments:\n", argc-1);
    for (i=1; i<argc; i++) {
        printf("  [%d] %s\n", i, argv[i]);
    }

    return 0;    // Indicate success
} 

编译并运行该程序,事情应该变得更加清晰。