① 什麼叫做命令行參數
給你個例子,用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 就是命令行參數。