① 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;
}