c语言主函数加参数的问题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c语言main()函数参数
main (int argc,char *argv[])
================================================================================= main只有这两个参数。argc表示参数(包括程序名)个数,argv是一个指针数组,其中每个指针指向一个字符串,即一个参数,因此argv[0]就是程序名,argv[1]就是第一个参数
比如 #./sort 1 2
则argc=3,argv[0]是"sort",argv[1]是"1",argv[2]是"2"。
=================================================================================小程序
#include
main (int argc,char *argv[])
{
int I;
printf("\n命令行中可执行文件名为:%s",argv[0]);
printf("\n总共有%d个参数:\n ",argc);
I=0;
while(argc>=1)
{printf("%s \n ",argv[I++]);
argc--;}
}
简而言之
argc 表示命令行参数个数(包含可执行文件名)
argv 则是一个字符串数组,共有 argc 个字符串,每个串为一个参数
如你生成了一个 t1.exe 的文件,按如下方式运行
C:\>t1 f1.txt /p
则 argc = 3
argv[0] = "C:\>t1.exe"
argv[1] = "f1.txt"
argv[2] = "/p"
你可以在程序使用以上参数,比如检查 argv[0],使其为指定的文件名才能运行,不让人更改你的可执行文件名称。
一个简单的例子
// xren.cpp
#include
void main( int argc, char *argv[] ) {
rename( *(argv+1), *(argv+2) );
}
这个程序实现命令提示符下文件改名(可改目录名),用法如下
xren oldname newname
当然,要使之具有实用性的话,还应该检查参数有效性,个数是否正确,一个简单的处理方法是发现参数个数不合要求时打印一个本程序的语法帮助