main函數(shù)中的參數(shù)argc和argv C語(yǔ)言中argc與argv怎么用?為什么我初始化argc時(shí)候老是出錯(cuò)?
C語(yǔ)言中argc與argv怎么用?為什么我初始化argc時(shí)候老是出錯(cuò)?C語(yǔ)言以int main(const int argc,const char*argv[]的形式定義參數(shù),其中argc和argv未
C語(yǔ)言中argc與argv怎么用?為什么我初始化argc時(shí)候老是出錯(cuò)?
C語(yǔ)言以int main(const int argc,const char*argv[]的形式定義參數(shù),其中argc和argv未在main函數(shù)中初始化,但用于從命令行傳遞參數(shù)。
1 argc,命令行傳遞的參數(shù)總數(shù)。
2 argv,命令行傳遞的每個(gè)參數(shù)值。例如,編譯的EXE文件是a.EXE。當(dāng)執(zhí)行a.exe 1 123 asdgf 34時(shí),每個(gè)參數(shù)都將轉(zhuǎn)換為字符串形式并存儲(chǔ)在argv中。此時(shí),argc=5argv={“a.exe”、“1”、“123”、“asdgf”、“34”}
當(dāng)您編譯的程序以命令行的形式運(yùn)行時(shí),運(yùn)行時(shí)啟動(dòng)代碼會(huì)將您在命令行上輸入的參數(shù)傳遞給程序的主功能。第一個(gè)參數(shù)通常是程序的名稱。例如,程序編譯后可執(zhí)行文件的名稱是什么測(cè)試.exe,當(dāng)您將其作為命令行執(zhí)行時(shí):測(cè)試.exe在本例中,argc值是2,表示有兩個(gè)參數(shù),其中argv[0]字符串是“測(cè)試.exe", argv[1]字符串是“Hello”
因此程序的主要功能可以編寫如下:
int main(int argc,char*argv[
{
if(argc!=2&;argc!=3)
]{
printf(”無效參數(shù)!n“”
返回-1
}
如果(argc==2)
]{
//argv[1]是您輸入的數(shù)字。它存儲(chǔ)為字符串。您可以測(cè)試字符串是否是數(shù)字,
//如果是數(shù)字,請(qǐng)調(diào)用atoi()將字符串轉(zhuǎn)換為整數(shù)值,將其平方,然后輸出結(jié)果。
}
Else
{
//argv[1]和argv[2]存儲(chǔ)您輸入的兩個(gè)數(shù)字(以字符串形式)。您可以測(cè)試字符串是否為
//number。如果是數(shù)字,則調(diào)用atoi()將兩個(gè)字符串轉(zhuǎn)換為數(shù)字,然后求和并輸出結(jié)果。
}
返回0;
}
C語(yǔ)言的argc,argv怎么用?
類似于Linux shell中使用的指令格式。例如,我執(zhí)行cp123。公元456年。C(副本123。C至456。C) ,相當(dāng)于在windows中執(zhí)行cp.exe文件123公元456年。C、 (假設(shè)窗口)調(diào)用cp.exe文件這個(gè)文件并傳入123。公元456年。C作為參數(shù)。編譯前cp.exe文件它應(yīng)該是一個(gè).C文件,其中main函數(shù)是int main(int argc,char**argv)cp.exe文件123公元456年。C、 主函數(shù)中的argc是3(3個(gè)參數(shù)),argv[0]=“cp.exe文件“,argv[1]=”123.c“,argv[2]=”456。C”,這樣我們就可以在主函數(shù)中處理這些參數(shù),也就是說,我們可以實(shí)現(xiàn)CP(copy this function)。你說的是類似的,相當(dāng)于傳入那些參數(shù),處理函數(shù)中的參數(shù),實(shí)現(xiàn)相應(yīng)的函數(shù)。