① 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张照片。不必对话输入参数。
② C语言中的命令行是什么,他有什么作用.~~
就是运行程序的时候要带进去的数据,一般留空即可,这个要讲也是很复杂的..简单来说,比如cs1.5
一般运行"d:\program
files\cs1.5\cstrike.exe"即可,但是我想进入控制台,那么命令行参数为-console
就是说运行"d:\program
files\cs1.5\cstrike.exe"
-console就可以了
用过命令提示符没有?比如x命令
x
c:\a.txt
d:\b.txt
其中"c:\a.txt
d:\b.txt"就是命令行参数
③ 什么是命令行参数本人是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语言编程实现,运行时要求带两个字符串参数,输出这两个字符串之间的关系。
#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语言中的命令行参数到底是什么,应该如何运用呢
命令行参数即 运行程序时 拍入的位置参数。
例如 程序名 a.exe,
运行程序时 拍入 a.exe p1 p2 p3 p4 p5
这里的 p1 p2 p3 p4 p5 就是 命令行参数。
例如 矩形面积计算程序 a.exe,命令行参数 宽 高:
#include<stdio.h>
int main(int argc, char *argv[])
{
double w,h;
if (argc < 3){
printf("Usage: %s width height\n", argv[0]);
return 0;
}
sscanf(argv[1],"%lf",&w);
sscanf(argv[2],"%lf",&h);
printf("Area = %lf\n",w*h);
return 0;
}
a.exe 1.2 3.0
命令行参数 宽 高 是 1.2 3.0, 输出:
Area = 3.600000
⑥ 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;
}