C语言 - 命令行参数

C语言 - 命令行参数 首页 / C语言入门教程 / C语言 - 命令行参数

命令行参数使用main()函数参数进行处理,其中 argc 表示传递的参数数量,而 argv [] 是指向每个传递的参数的指针数组到程序。以下是一个简单的示例,该示例检查命令行是否提供了任何参数并采取相应的措施-

#include <stdio.h>

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

   if( argc == 2 ) {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 ) {
      printf("Too many arguments supplied.\n");
   }
   else {
      printf("One argument expected.\n");
   }
}

当使用单个参数编译并执行以上代码时,将产生以下输出。

链接:https://www.learnfk.comhttps://www.learnfk.com/c-programming/c-command-line-arguments.html

来源:LearnFk无涯教程网

$./a.out testing
The argument supplied is testing

当使用两个参数编译并执行以上代码时,将产生以下输出。

$./a.out testing1 testing2
Too many arguments supplied.

在不传递任何参数的情况下编译并执行上述代码时,将产生以下输出。

$./a.out
One argument expected

应当注意, argv [0] 保存程序本身的名称,而 argv [1] 是指向所提供的第一个命令行参数的指针,而* argv [ n]是最后一个参数。如果未提供任何参数,则argc将为1,如果传递一个参数,则 argc 设置为2。

无涯教程网

#include <stdio.h>

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

   printf("Program name %s\n", argv[0]);
 
   if( argc == 2 ) {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 ) {
      printf("Too many arguments supplied.\n");
   }
   else {
      printf("One argument expected.\n");
   }
}

当上面的代码使用由空格分隔但在双引号内的单个参数编译和执行时,将产生以下输出。

$./a.out "testing1 testing2"

Progranm name ./a.out
The argument supplied is testing1 testing2

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

从0开始学微服务 -〔胡忠想〕

OpenResty从入门到实战 -〔温铭〕

高并发系统设计40问 -〔唐扬〕

小马哥讲Spring核心编程思想 -〔小马哥〕

体验设计案例课 -〔炒炒〕

数据分析思维课 -〔郭炜〕

徐昊 · TDD项目实战70讲 -〔徐昊〕

计算机基础实战课 -〔彭东〕

手把手带你写一个 MiniTomcat -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)