C语言 命令行参数

什么是命令行参数 ?我们先看看main 函数

int main( int argc, char *argv[] )  
{
}
  • argc 是指传入参数的个数
  • argv[] 是一个指针数组

很显然这是一个从外部传递进来的参数,在实际开发过程,如果想从外部控制程序,那这个就派上大用场了.

例如:一个程序写完了,想部署起来,但是引用了外部资源,这个时候要是有个参数能控制下就好了, 这个就就是多环境部署,

  • 开发环境
  • 测试环境
  • Beta 环境
  • 生产环境

C 命令行参数接收

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <setjmp.h>
#include <stdarg.h>

int main(int argc, char *argv[] )
{
    if(argc <= 0)
    {
        printf("未传递参数,程序即将退出...");
        return 0;
    }

    printf("总共传递进来的参数个数:%d\n", argc);
    for(int i = 0; i < argc; i ++)
    {
        printf("第%d参数为 :%s\n", (i + 1), argv[i]);
    }

    return 0;
}

运行结果为

总共传递进来的参数个数:1
第1参数为 :D:\dev\workspace_c\Test\bin\Debug\Test.exe

注意

  • argv[0] 存储程序的名称
  • argv[1] 是一个指向第一个命令行参数的指针
  • *argv[n] 是最后一个参数。如果没有提供任何参数,argc 将为 1,否则,如果传递了一个参数,argc 将被设置为 2。
  • 参数之间用空格分开, 但是如果参数本身带有空格,那么传递参数的时候应把参数放置在双引号 "" 或单引号 '' 内部