华勤董事长:C中的命令行参数到底有什么作用啊?

来源:百度文库 编辑:高考问答 时间:2024/05/02 06:49:21
能不能给个详细的例子啊

C中的命令行参数又叫位置参数,它可以被传到程序里面,派各种用途。
C里的main()写全了应当是:
main(int argc,char *argv[]){
..
}

argc的值等于位置参数总个数(包括程序名字)。
argv[0] 存程序名字,argv[1] 存第一个位置参数,argv[i]存第i 个位置参数,直到argv[argc-1].

例如: clip -in a.jpg -out b.jpg -x1 10 -y1 10 -x2 200 -y2 160
参数0,程序名clip
参数1,2: -in a.jpg 输入文件名
参数3,4: -out b.jpg 输出文件名
参数5,6: -x1 10 裁剪起点x座标
参数7,8: -y1 10 裁剪起点y座标
参数9,10:-x2 200 裁剪终点x座标
参数11,12: -y2 160 裁剪终点y座标
这些参数通过命令行传入程序。

采用位置参数输入方法,避免了对话输入法。
例如,我要裁剪10张照片,我可以写一个批文件my.bat
文件内容:
clip -in a1.jpg -out b1.jpg -x1 10 -y1 10 -x2 200 -y2 160
clip -in a2.jpg -out b2.jpg -x1 20 -y1 10 -x2 210 -y2 160
clip -in a3.jpg -out b3.jpg -x1 10 -y1 20 -x2 200 -y2 170
clip -in a4.jpg -out b4.jpg -x1 20 -y1 20 -x2 210 -y2 170
...
clip -in a10.jpg -out b10.jpg ...
运行my.bat,就裁剪了10张照片。不必对话输入参数。

比如执行DOS命令dir C:其中C:作为命令行参数传给程序,程序跟据参数来执行列出C盘根目录所有文件和文件夹。
C里main()的参数有两个,第一个为参数的个数,第二个为字符数组指针数组(指向指向字符类型的指针的指针),保存参数的内容。

pluto_coo说的有误,ping 127.0.0.1 -t有两个参数,-t是一个,127.0.0.1也是一个,在C里main函数是可以带参数,main函数的参数就是命令行参数,相同的,在Win32下的WinMain函数也可以带参数
带参的main如下所示
void main(int argc,char *argv[])
其中argc表示命令行传给main参数的参数个数,其中包括命令本身,如前例的ping,argc的值为3,argv是字符串指针,是所有参数的数组,其中包括命令本身,如上例,*argc[0]的值为"ping",*argc[1]为127.0.0.1,以此类推

main(int argc,char *argv[])
为什么我在DOS下运行的时候没有显示出argc结果.

最简单的一个 PING 127.0.0.1 -t “-t”就是一个参数 意思就是一直ping下去知道用户取消该命令