如何在C语言中访问命令行参数

234 阅读1分钟

学习如何在C语言中访问命令行参数

在你的C语言程序中,你可能有需要在命令启动时接受来自命令行的参数。

对于简单的需求,你只需要将main() 函数签名从

改为

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

argc 是一个整数,包含命令行中提供的参数数量。

argv 是一个字符串的数组

当程序启动时,我们在这2个参数中得到了参数。

注意,argv 数组中总是至少有一项:程序的名称

让我们以我们用来运行程序的C编译器为例,像这样。

如果这是我们的程序,我们会让argc 是4,而argv 是一个包含的数组

  • gcc
  • hello.c
  • -o
  • hello

让我们写一个程序,打印出它所收到的参数。

#include <stdio.h>

int main (int argc, char *argv[]) {
  for (int i = 0; i < argc; i++) {
    printf("%s\n", argv[i]);
  }
}

如果我们的程序的名字是hello ,我们这样运行它。./hello,我们会得到这样的输出。

./hello

如果我们传递一些随机参数,像这样:./hello a b c ,我们会得到这样的输出到终端。

./hello
a
b
c

这个系统对于简单的需求非常有效。对于更复杂的需求,有一些常用的软件包,如getopt