① 什么叫做命令行参数
给你个例子,用C语言编程实现,运行时要求带两个字符串参数,输出这两个字符串之间的关系。
#include
#include
void main(int argc,char *argv[])
{
if (argc!=3)
printf("请在运行程序时提供两个字符串参数!例如:testApp aaa bbb\n");
else
{
if (strcmp(argv[1],argv[2])>0)
printf("字符串1大于字符串2");
else if(strcmp(argv[1],argv[2])<0 )
printf("字符串1小于字符串2");
else
printf("字符串1等于字符串2");
}
}
把上述程序保存为testApp.cpp,然后编译为testApp.exe文件,最后在命令行模式下按“testApp 字符串1 字符串2”的格式输入命令,即可看到结果。
建议你了解一下DOS命令的初级知识,其实在windows-》运行,输入CMD即可打开命令行操作窗口,然后就可以用输入命令的方式运行一些应用程序了,一般格式就是“命令关键字 命令行参数列表”这种。比如你输入“dir /ad”,其中dir就是命令,“/ad”就是命令行参数。
② C语言命令行参数
int main(int argc, char * argv[])
{
.....
}
argc: 代表启动程序时,命令行参数的个数。C和C++语言规定,可执行程序程序本身的文件名,也算是一个命令行参数,因此,argc的值至少是1.
argv[]:指针数组,其中的每个元素都是一个char* 类型的指针,该指针指向一个字符串,这个字符串里就存放着命令行参数。
例如,argv[0]指向的字符串就是第一个命令行参数,即可执行程序的文件名,argv[1]指向第二个命令行参数,argv[2]指向第三个命令行参数....。
#include <stdio.h>
int main( int argc, char * argv[])
{
int i;
for ( i = 0;i < argc; i++)
{
printf("%s ",argv[i]);
}
return 0;
}
windows下,将上面的程序编译成sample.exe,然后在控制台窗口敲:
sample para1 para2 s.txt 5 "hello world"
上面有6个参数,双引号为了包含空格作为一个参数。
输出结果:
sample
para1
para2
s.txt
5
hello world
main函数通常含有参数argc和argv,写法通常如下:
int main(int argc,char *argv[])
int main(int argc,char **argv)
程序:
#include<stdio.h>
int main(int argc,char *argv[])
{
int i;
for(i=0;i<argc;i++)
printf("第 %d 个参数是 %s ",i+1,argv[i]);
return 0;
}
③ 什么是c的命令行参数
所谓c语言的命令行参数,主要指的main函数的参数,main函数有操作系统来调用,用户通过操作系统来运行软件,因此可以传递参数。比如
intmain(intargc,char*argv[])//这是控制台上的main函数
其中argc用于说明传递的命令行参数的个数,argv是一个char *的指针数组,每1个元素代表一个参数。其中argv[0]即表示程序本身。
④ 什么是命令行参数本人是c++菜鸟
可以通过在程序的main()函数中添加形式参数来接收程序在启动时从命令行中获得的各个命令行参数,包括:程序名称、路径、当前环境变量和用户指定参数等。命令行参数由启动程序截获并传递给main()。
一个典型的命令行例子如:
My
srcFile
destFile
一个典型的main()例子如:
int
main(
int
argc,
char
*argv[
]
,
char
*envp[
]
);
argc
指示数组指针argv中包含的参数个数,该整数总是大于等于1。
argv
一个以NULL以为的字符串数组,存储用户输入的命令行参数。按照惯例,argv[0]为程序调用的命令,如c:\my.exe;argv[1]为第一个命令行参数,直到argv[argc-1];argv[argc]总是NULL。
envp
存储执行当前程序的用户环境变量
#include<stdio.h>
int
main(int
argCount,char
*
argValue[],
char
*
envp[])
{
FILE*
srcFile
=
0,
*destFile
=0;
int
ch
=
0;
int
i
=
0;
if
(argCount
!=
3){
printf("Usage:%s
src-file-name
dest-file-name\n",argValue[0]);
}else{
if((srcFile
=
fopen(argValue[1],"r"))
==
0){
printf("Can
not
open
source
file\"%s\"!",argValue[1]);
}else{
if((destFile
=
fopen(argValue[2],"w"))
==0){
printf("Can
not
open
destination
file\"%s\"!",argValue[2]);
}else{
while((ch
=
fgetc(srcFile))!=
EOF)
fputc(ch,destFile);
printf("Successful
to
a
file!\n");
fclose(srcFile);
fclose(destFile);
printf("%d
command
line
parameters
are
got
in
program
\n",argCount);
printf("All
command
line
parameters
are
list
here:\n");
while(envp[i]!=NULL){
printf("%s\n",argValue[i]);
i++;
}
i
=
0;
printf("The
variable
set
is
list
here:\n");
while(envp[i]!=NULL){
printf("%s\n",envp[i]);
i++;
}
return
0;
}
}
}
return
1;
}
⑤ C中的命令行参数到底有什么作用啊
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 命令的时候就可以:
DIR /P
表示分页显示,这里的 /P 就是命令行参数。