命令行参数

命令行界面中,可执行文件可以在键入命令的同一行中获取参数用于具体的执行命令。无论是Python、Java还是C等等,这些语言都能够获取命令行参数(Command-line argument,与命令同一行中的附加项)。

C编写的可执行文件的程序入口函数是main函数,因此C程序真正读取命令行参数的就是main函数。

例:

#include <stdio.h>

/*
* test.c 编译后产生可执行文件test.exe或test.out,程序来源于C Primer Plus第十一章
*/
int main(int argc,char *argv[]) {
int count;
printf("The command line has %d arguments :\n",argc-1);
for (count = 1; count < argc; ++count) {
printf("%d: %s\n",count,argv[count]);
} return 0;
}

我们在test.exe所在文件夹打开命令行窗口,键入test I love you,会输出:

The command line has 3 arguments:
1: I
2: love
3: you

C标准规定main函数作为程序入口,可以没有参数,也可以有两个参数。两种参数的情况下,第一个参数argc是命令行中的字符串个数,字符串的分隔按空格来判断,上例中总共输入了4个字符串,分别是 test, I, love, you。第二个参数argv是一个指向这些字符串的指针数组。命令行界面中输入的所有字符串被存储在这个数组中,可以用for循环遍历。第一个元素当然是命令的名称。当然,对于接受参数的main函数也可以用另一种声明:

inr main(int argc, int **argv)argv是一个指向字符的指针的指针,本质上还是指向包含多个字符串的数组。

命令行界面允许使用双引号把多个单词识别成一个参数:

test "I love you."

这其中I love you.被认为是一个整体的参数。

最新文章

  1. PyQt4入门学习笔记(二)
  2. CCNA网络基础(一)
  3. 378. Kth Smallest Element in a Sorted Matrix
  4. 关于 BCSCTL1 = CALBC1_12MHZ;DCOCTL = CALDCO_12MHZ; 的疑问
  5. mac上eclipse上配置hadoop
  6. iOS应用程序安全
  7. 为什么数据线easy糟糕
  8. T4模版
  9. 关于金额,重量等浮点数的数据库字段设计(用Int,Long代替浮点数计算)
  10. [51nod1440]迈克打电话
  11. BloomFilter(布隆过滤器)
  12. 使用nginx部署网站
  13. MacBook Pro App Store无法下载和更新软件解决方案
  14. Spring Boot jsp页面无法跳转问题
  15. struts2_模型驱动
  16. redis 主从复制 [转]
  17. Robot Operating System (ROS)学习笔记3---键盘控制
  18. Ubuntu双系统无法挂载Windows10 硬盘的解决方法
  19. LeetCode OJ:Valid Number
  20. Spring 一二事(10) - annotation AOP

热门文章

  1. 固定定位导致$(window).scrollTop();获取滚动后到顶部距离总是为0
  2. [转帖]ZEROCONF是什么
  3. Sitecore个性化 - 基础知识
  4. Python &#39;\r&#39;, &#39;\n&#39;, &#39;\r\n&#39; 的彻底理解
  5. 14、VUE服务器渲染
  6. C# vb .NET读取多个识别条形码线性条码
  7. java内存溢出实战
  8. python2.7写的图形密码生成器
  9. 小程序开发:用Taro搭建框架
  10. 【转】LockSupport深入浅出