c语言程序设计之命令行参数

c语言程序设计之命令行参数

ID:28444728

大小:70.50 KB

页数:4页

时间:2018-12-10

c语言程序设计之命令行参数_第1页
c语言程序设计之命令行参数_第2页
c语言程序设计之命令行参数_第3页
c语言程序设计之命令行参数_第4页
资源描述:

《c语言程序设计之命令行参数》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、C语言程序设计之命令行参在许多应用软件运行时都带有命令行参数,其实这些命令行参数在C语言编写的程序中也可以实现,灵活地运用命令行参数进行处理可以有效地提高程序的运行效率,收到事半功倍的效果。C语言中有关命令行参数涉及到程序的主函数main(intargc,char*argv[]这样两个参数,其中,intargc表示命令行参数的个数(包括可执行程序名本身),char*argv□表示每个参数的具体内容,argv[O]为命令行中可执行程序名本身,argv[l]为命令行中第二个参数的内容,依次类推。如下例输出命令行参数的个数及参数的内

2、容:main(intarge,char水argv[],{intI;printf(n命令行中可执行文件名为:%s,argv[O]);printf(n总共有%d个参数:,arge):1=0;while(argegt;=1){printf(’’%s,argv[I++]):argc—;}}命令行参数用的最多还是在诸如DIRA:等之类带有盘符、路径或文件名这样的命令行中,所以说灵活处理这一类参数才能有效地提高程序的运行效果。譬如DIR命令,其后可以是盘符,可以是路径,也可以是文件名,如何区分这一参数呢?请看下例(此程序模拟DIR命令,程

3、序要求在命令行输入一个参数:盘符或路径或文件名,若无参数或参数多于一个都将取默认的参数*功能:模拟DIR命令进行处理命令行参数#include#include^include#inchludeintj,num=O:charss[20],path[50],path2[50];voidmain(intargc,char^argv[]){structffblkf;intdone;if(argc==2)/*取命令行参数到数组中*/strcpy(ss,argv[1]);elsestrcpy(ss,〃*•氺");/*给数组赋值缺省参数*/

4、if(((ss[strlen(ss)-l]==’f\((ss[strlen(ss)-streat(ss,"*.*〃):若参数为路径或盘符,则加上"氺.*"*/getcwd(pathl,50):取当前路径*/if(chdir(ss)==0)/*判断参数是否为路径*/streat(ss,*.*):/*若路径末没有带,贝U加上chdir(pathl):/*恢复原来路径*/strepy(path2,ss);for(j=strlen(path2);jgt;0;j—)/*提取参数中的路径到path2*/{if((path2[j]==")

5、)

6、

7、(path2□•]==?)){path2[j+l]=’’;gotosenu11;}path2[0]=’senul1:if(str1en(path2)==0)/*若给出的参数中没带路径,则取当前路径*/strepy(path2,pathl):printf(n林模拟DIR林n命令目录路径%s,path2);done=findfirst(ss,amp;f,55);/*查找第一个配匹的文件*/J-l;while(!done){if(f.ff_attrib!=0x10)/*若文件属性不是目录*/printf(n%15s%201d,

8、f.ff_name,f.ff_fsize):elseprintf(namp;11s,f.ff_name);num++;j++;if(j==23)printf(nMore(按任意键继续));getch():3=0;printf(〃n(目录路径%s)〃,path2);}done=findnext(amp;f);/*查找下一个配匹的文件*/printf(〃n当前目录中总共有%d个文件.n〃,num):

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。