C語(yǔ)言命令行參數(shù)
C語(yǔ)言命令行參數(shù)實(shí)例代碼教程 -它是可能的C程序執(zhí)行時(shí),,在命令行中傳遞一些值,。這些值被稱(chēng)為命令行參數(shù),很多時(shí)候,,你的程序是非常重要的,,特別是當(dāng)你要控制你的程序從外部而不是硬編碼在代碼中的這些值。
它是可能的C程序執(zhí)行時(shí),,在命令行中傳遞一些值,。這些值被稱(chēng)為命令行參數(shù),很多時(shí)候,,你的程序是非常重要的,,特別是當(dāng)你要控制你的程序從外部而不是硬編碼在代碼中的這些值。 處理命令行參數(shù)使用主要()函數(shù)的參數(shù)ARGC是指?jìng)鬟f的參數(shù)個(gè)數(shù)和argv []是一個(gè)數(shù)組的指針,,它指向每個(gè)參數(shù)傳遞給該程序,。下面是一個(gè)簡(jiǎn)單的例子,檢查是否有提供任何參數(shù)的命令行,,并采取相應(yīng)的行動(dòng): #include <stdio.h> int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } } 當(dāng)上面的代碼被編譯并執(zhí)行一個(gè)單獨(dú)的參數(shù),,它會(huì)產(chǎn)生以下結(jié)果。 $./a.out testing The argument supplied is testing 當(dāng)上面的代碼被編譯并執(zhí)行一個(gè)單獨(dú)的參數(shù),,它會(huì)產(chǎn)生以下結(jié)果,。 $./a.out testing1 testing2 Too many arguments supplied. 當(dāng)上面的代碼編譯和執(zhí)行不傳遞任何參數(shù)的情況下,它會(huì)產(chǎn)生以下結(jié)果,。 $./a.out One argument expected 應(yīng)該指出的argv [0]包含該程序的名稱(chēng)和argv[1]的第一個(gè)命令行參數(shù)提供的是一個(gè)指針,,和* ARGV[N]是最后一個(gè)參數(shù)。如果沒(méi)有提供參數(shù),,ARGC將是一個(gè),,否則,如果你傳遞一個(gè)參數(shù),,那么ARGC設(shè)置為2,。 您通過(guò)了所有的命令行參數(shù)用空格隔開(kāi),但如果論點(diǎn)本身所具有的空間,,那么你可以通過(guò)這些參數(shù)的雙引號(hào)內(nèi)的“或單引號(hào)'',。讓我們重新寫(xiě)上面的例子再一次,我們將打印程序的名字,,我們還通過(guò)把雙引號(hào)內(nèi)的命令行參數(shù): #include <stdio.h> int main( int argc, char *argv[] ) { printf("Program name %s\n", argv[0]); if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied - by www.yiibai.com.\n"); } else { printf("One argument expected.\n"); } } 當(dāng)上面的代碼編譯和執(zhí)行分開(kāi)的空間,,但在雙引號(hào)內(nèi)的一個(gè)參數(shù),,它會(huì)產(chǎn)生以下結(jié)果,。 $./a.out "testing1 testing2" Progranm name ./a.out The argument supplied is testing1 testing2 |
|