【问题标题】:Implementing a command-line argument实现命令行参数
【发布时间】:2013-05-16 14:49:58
【问题描述】:

我必须使用以下签名实现主要功能:

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

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

一旦我弄清了这些事情,我一定会编辑这个问题以包括我对解决方案的尝试。

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

【问题讨论】:

  • 这是作业还是什么?这是几乎所有编写过的 C 应用程序的无处不在的 main 入口点。您在这里提出了一些问题,所有这些问题都可以通过使用搜索引擎并进行一些研究或通过查阅基本的 C 编程书籍来回答。
  • 我想我最困惑的是如何启动这个函数的实现文件。我看过一些非常长的例子,也看过一些非常短的例子。我不完全确定如何开始。 :(
  • 实施?你想做什么? int main(int argc, char** argv)每个程序的启动方式!
  • 哦!我的意思是,我必须在一个名为的文件中开发它:cmdline.c

标签: c command character command-line-arguments


【解决方案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
} 

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

【讨论】:

  • 很抱歉,我没有任何编程经验,我可能会问一些愚蠢的问题。 :( 但是你怎么知道要输入“Hello World,我的名字是……”?
  • “你怎么知道放” - 因为这是我的示例程序,我只是在编造我喜欢的任何东西。这就是编程的工作原理。我从1 开始i,因为argv[0] 始终是正在运行的可执行文件的名称。参数从argv[1]开始。
  • 说真的,不要生气,但这不是学习如何编程的地方。有数百个 网站可以教你。 Example。人们不会愿意牵着你的手回答一堆“我的第一个 C 程序”问题。
  • 感谢您的链接。是的,我明白了。 :) 我会尽量不要在这里问太多关于基本东西的问题。不过感谢您的帮助!
  • 阅读一些教程并基本了解 a) 程序如何在系统上编译和运行,b) 循环、函数和结构等基本元素,以及 c) 如何进行基本调试(插入打印语句,使用调试器等)然后,回来就棘手的问题寻求帮助。欢迎编程!
猜你喜欢
  • 1970-01-01
  • 2020-09-10
  • 2020-09-25
  • 2016-03-25
  • 2011-04-29
  • 2011-02-25
  • 2013-02-14
相关资源
最近更新 更多