C语言对命令行参数求和,C语言命令行参数汇总

从命令行传递的参数称为命令行参数。这些参数由main()函数来处理的。

要支持命令行参数,您需要更改main()函数的结构,如下所示 -

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

C

在这里,argc计算参数的数量。它将文件名称作为第一个参数。

argv []包含参数的总数。第一个参数永远是此程序的文件名。

命令行参数实例

我们来看一下命令行参数的例子,用文件名传递一个参数。创建一个源文件:main-commandline.c,其代码如下所示 -

#include

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

printf("Program name is: %s\\n", argv[0]);

if(argc < 2){

printf("No argument passed through command line.\\n");

}

else{

printf("First argument is: %s\\n", argv[1]);

}

}

C

在Linux上执行上面示例代码,得到以下结果 -

root@AYZ:~# gcc main-commandline.c

root@AYZ:~# ./a.out argc_value

Program name is: ./a.out

First argument is: argc_value

Shell

在Windows中从命令行运行以下程序:

F:\\>cd worksp\\clanguage\\command-line-arguments\\debug

F:\\worksp\\clanguage\\command-line-arguments\\Debug>dir

驱动器 F 中的卷是 Others

卷的序列号是 0007-6F29

F:\\worksp\\clanguage\\command-line-arguments\\Debug 的目录

2017/08/18 01:23

2017/08/18 01:23

2017/08/18 01:23 37,376 command-line-arguments.exe

2017/08/18 01:23 291,652 command-line-arguments.ilk

2017/08/18 01:23 552,960 command-line-arguments.pdb

3 个文件 881,988 字节

2 个目录 53,178,052,608 可用字节

F:\\worksp\\clanguage\\command-line-arguments\\Debug>command-line-arguments.exe test-arg

Program name is: command-line-arguments.exe

First argument is: test-arg

F:\\worksp\\clanguage\\command-line-arguments\\Debug>

Shell

如果传递很多参数,它只会打印一个,如下:

root@AYZ:~# ./a.out hello I am Maxsu

Program name is: ./a.out

First argument is: hello

Shell

但是,如果您在双引号内传递许多参数,则所有参数将被视为单个参数。如下 -

root@AYZ:~# ./a.out "hello I am Maxsu"

Program name is: ./a.out

First argument is: hello I am Maxsu

Shell

您可以编写程序来打印所有参数。在这个程序中,我们只打印argv [1],这就是为什么只打印一个参数的原因了,您可以根据需要使用或打印argv [2],argv [3],argv [4]....等等。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内容: 1、Linux系统C语言编程连接MySql数据库实现的用户 用户组 用户策略 管理系统(getopt解析命令行参数).c 代码的源文件。 user-usergroup-authoritys.vsd user-usergroup-authoritys.jpg 数据库的图,以及图片。 2、部分操作: 显示操作 -S //-S显示名为xxx用户具体信息(所在组、改组定义了什么策略) 提示必须加-n参数 ./userGroupUser users -S //显示用户表 用户组表 所有信息 ./userGroupUser users -S -n root //显示用户表内 name=root的用户的信息 //可以显示该用户对应用户组内 所在的组 定义的策略信息 新增操作 -A /* 全:./userGroupUser users -A s -n test3 -p test3 -a 2 -groot -rasdc*/ /**添加用户 (-g(+) group ; -r(+) remark)**/ //新增用户的时候必须有-n|-p|-a选项 name password authentication //一次性输入所有选项也是错误的 需要为每个参数赋值 // printf("ADD -- Please enter necessary parameters -n|-p|-a,and assign a value to each parameter!\n"); //-g的参数必须紧跟 否则改用户会默认加入root组; //-r的参数必须紧跟 否则判定为输入为空 //当-g选项没有加参数时候 默认该用户属于root组; //-g后的参数不存在则加入失败,提示该用户组不存在 ./userGroupUser users -A -n ddf -p aa -a 1//添加用户 name=ddf authentication=1 默认加到用户组root //insert into users values(7,'ddf','aa','2018-7-2 16:23:39',1,1,' ','KEY认证需要的文件',''); ./userGroupUser users -A -n dds -a 1 -p sd -rkj -gaa //添加用户 name=dds authentication=1 group=aa //insert into users values(6,'dds','sd','2018-7-2 16:20:33',1,1,' ','KEY认证需要的文件','kj'); //-g后的参数 用户组名不存在不允许加入users usergroups表 /**添加用户组 (-e(+) enable; -o(+) policy; -r(+) remark)**/ /*全: ./userGroupUser usergroups -A -n dd -e1 -oWEB,HTTP -rddWH*/ //新增用户时候有必须参数-n选项 name //只有-n参数时候 策略状态( enable_type_)为0 默认策略( policy_type_)为所有策略资源 //其他参数 -e(+) 策略状态enable; -o(+)策略类型policy; -r(+) 标记内容remark ./userGroupUser usergroups -A //提示 Please enter other parameters when you want to add someone!! ./userGroupUser usergroups -A -n aa //用户组表中添加name=aa policy默认如下 remark默认为空 的用户组信息 //insert into usergroups values(2,'aa','2018-7-2 16:14:19',0,'GET,HEAD,POST,PUT,DELETE,OPTIONS','') ./userGroupUser usergroups -A -n aa -oGET -rasd //向用户组中添加 name=aa policy=GET remark=asd的用户 //insert into usergroups values(2,'aa','2018-7-2 16:14:46',0,'GET','asd'); 修改操作 /**修改用户**/ /*全:./userGroupUser users -E -n test33 -p test33 -a 1 -gaa -rtest3totest33 where name test3 password test3*/ //修改用户操作必须有where name password 字符;且where后个数需为偶数; name password参数需参数值 //判断要进行改的用户是不是管理员用户,禁止对管理员用户进行任何操作 //参数 :-n newname;-p newpassword;-a authentication; -ggroup; -rremark; ./userGroupUser users -E -n test22 where name test2 password test2 //把名为test2密码为test2的用户名改为test22 /**修改用户组**/ /*全:./userGroupUser usergroups -E -n aaa -e1 -oGET,HEAD -raatoaaa where name aa*/ //修改用户组操作必须有where name字符;且where后个数需为偶数; name 参数需参数值 //判断要进行改的用户是不是管理员用户,禁止对管理员用户进行任何操作 //参数 : -n newname;-eenabled ; -opolicy; -rremark; ./userGroupUser usergroups -E -n AA where name aa//把aa用户名改为AA ./userGroupUser usergroups -E -n csa -e1 -oAAA,WEB,HTTP -rAAA where name aaa //修改 用户组name为aaa为 name=csa enable=1 policy=AAA,WEB,HTTP remark=AAA 删除操作 ./userGroupUser users -D // 提示 Please enter other parameters when you want to add someone!! ./userGroupUser users -D -n root -p r //root用户不允许删除 //name或passwd 不正确不允许删除 ./userGroupUser usergroups -D //提示 Please enter other parameters when you want to add someone!! ./userGroupUser usergroups -D -n as//判断是否有用户属于该用户组 若有用户属于该用户组 不允许删除该用户组 //root 用户组不允许删除

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值