命令行参数

命令行界面中,可执行文件可以在键入命令的同一行中获取参数用于具体的执行命令。无论是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.被认为是一个整体的参数。

C程序获取命令行参数的更多相关文章

  1. 从Win32程序中的主函数中获取命令行参数

    在标准C或者Win32控制台程序的main函数中,它们都有两个参数:"argc" 和 "argv",如下所示: int main(int argc, char ...

  2. 【WPF】如何获取命令行参数

    应用程序以 Main 方法为入口点,如果为 Main 方法指定一个 string[] 类型的参数,在程序运行时,这个参数会获取到传递给应用程序的命令行参数. 而 WPF 应用程序比较特殊,因为在VS中 ...

  3. 【Python学习 】Python获取命令行参数的方法

    背景 最近编写一个python程序的时候,需要去获取python命令行的参数,因此这里记录下如何获取命令行参数的方法. 一.sys 模块 在 Python 中,sys 模块是一个非常常用且十分重要的模 ...

  4. python获取命令行参数的方法(汇总)

    介绍python获取命令行参数的方法:getopt模和argparse模块. python版本:2.7 一.getopt模块 主要用到了模块中的函数: options, args = getopt.g ...

  5. MFC中获取命令行参数的几种方法

    在MFC程序中,可以用以下几种方法来获取命令行参数. 为方便说明,我们假设执行了命令:C:\test\app.exe -1 -2 方法一 ::GetCommandLine(); 将获取到 " ...

  6. go语言基础之获取命令行参数

    1.获取命令行参数 示例: package main //必须 import "fmt" import "os" func main() { list := o ...

  7. golang获取命令行参数

    部署golang项目时难免要通过命令行来设置一些参数,那么在golang中如何操作命令行参数呢?可以使用os库和flag库. 1.golang os库获取命令行参数 os可以通过变量Args来获取命令 ...

  8. [GO]获取命令行参数

    package main import ( "os" "fmt" ) func main() { list := os.Args n := len(list) ...

  9. python获取命令行参数

    python获取命令行参数 主要是通过sys的argv列表来获取命令行内容,命令行的参数以空格分隔放到argv列表中. import sys if __name__ == "__main__ ...

随机推荐

  1. 转: 彻底理解 Spring 容器和应用上下文

    本文由 简悦 SimpRead 转码, 原文地址 https://mp.weixin.qq.com/s/o11jVTJRsBi998WlgpfrOw 有了 Spring 之后,通过依赖注入的方式,我们 ...

  2. Java并发之原子性,可见性,有序性

    原子性 ​原子性指的是一个或者多个操作在 CPU 执行的过程中不被中断的特性 在多线程情况下,线程会被操作系统调度进行任务切换,占有CPU时间片段的就执行,否则就阻塞 java中对基础类型的变量赋值是 ...

  3. GNU Makefile中的条件控制结构

    在常见的编程语言中,使用条件控制结构诸如if ... else if ... else...是很寻常的事情,那么在GNU Makefile中如何使用呢? ifeq ifneq 例如:foo.sh #! ...

  4. $.ajax()方法

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...

  5. python 多进程并发demo

    outline 下午需要简单处理一份数据,就直接随手写脚本处理了,但发现效率太低,速度太慢,就改成多进程了: 程序涉及计算.文件读写,鉴于计算内容挺多的,就用多进程了(计算密集). 代码 import ...

  6. Mybatis源码解析(一) —— mybatis与Spring是如何整合的?

    Mybatis源码解析(一) -- mybatis与Spring是如何整合的?   从大学开始接触mybatis到现在差不多快3年了吧,最近寻思着使用3年了,我却还不清楚其内部实现细节,比如: 它是如 ...

  7. Object.assign的使用

    语法: Object.assign(target, ...sources)//target目标对象,sources源对象,返回值目标对象 使用说明: 如果目标对象中的属性具有相同的键,则属性将被源对象 ...

  8. 英语chiltonite葡萄石chiltonite单词

    葡萄石Chiltonite 1.葡萄石能够促进血液循环,具有美容养颜的功效,非常适合女性佩戴,可以增加个人魅力,还能加强事业财运,凝聚财富气场. 2.绿色光对应人体心轮,对心脏,肺脏有效用,内涵的磁石 ...

  9. cpio建立、还原备份档

    1. 简介 加入.解开cpio或tar备份档内的文件 与tar相似,将文件归档到硬盘或磁带等存储设备中 2. tar比较 在所处理的文件类型方面,它比tar更全面,但也更复杂 cpio比tar更为可靠 ...

  10. C# Net 计算周(可正推和逆推)

    C# Net 计算周(可正推和逆推) 拷贝代码(方法): /// <summary> /// 计算周 /// </summary> /// <param name=&qu ...