C++ 命令行傳參給生成exe

main()稱(chēng)之為主函數(shù),是所有程序運(yùn)行的入口。其余函數(shù)分為有參或無(wú)參兩種,均由main()函數(shù)或其它一般函數(shù)調(diào)用,若調(diào)用的是有參函數(shù),則參數(shù)在調(diào)用時(shí)傳遞。

C/C++語(yǔ)言中的main函數(shù),經(jīng)常帶有參數(shù)argc,argv,如下:

int main(int argc, char** argv)
int main(int argc, char* argv[])

從函數(shù)參數(shù)的形式上看,包含一個(gè)整型和一個(gè)指針數(shù)組。當(dāng)一個(gè)C/C++的源程序經(jīng)過(guò)編譯、鏈接后,會(huì)生成擴(kuò)展名為.EXE的可執(zhí)行文件,測(cè)試生成的exe文件就是由系統(tǒng)來(lái)啟動(dòng)運(yùn)行的。同時(shí)因?yàn)閷?duì)main()函數(shù)既然不能由其它函數(shù)調(diào)用和傳遞參數(shù),就只能由系統(tǒng)在啟動(dòng)運(yùn)行時(shí)傳遞參數(shù)了。
在操作系統(tǒng)環(huán)境下,一條完整的運(yùn)行命令應(yīng)包括兩部分:命令與相應(yīng)的參數(shù)。其格式為:命令 參數(shù)1 參數(shù)2....參數(shù)n…
此格式也稱(chēng)為命令行。命令行中的命令就是可執(zhí)行文件的文件名,其后所跟參數(shù)需用空格分隔,并為對(duì)命令的進(jìn)一步補(bǔ)充,也即是傳遞給main()函數(shù)的參數(shù)。

命令行與main()函數(shù)的參數(shù)存在如下的關(guān)系:

設(shè)命令行為:program str1 str2 str3 str4 str5
其中program為文件名,也就是一個(gè)由program.c經(jīng)編譯、鏈接后生成的可執(zhí)行文件program.exe,其后各跟5個(gè)參數(shù)。對(duì)main()函數(shù)來(lái)說(shuō),它的參數(shù)argc記錄了命令行中命令與參數(shù)的個(gè)數(shù),共6個(gè),指針數(shù)組的大小由參數(shù)argc的值決定,即為char*argv[6]。

代碼示例
#include<iostream>
 
using namespace std;
 
int main(int argc,char **argv){
 
cout << "argc:" << argc << endl;

for(int i=0;i<argc;i++)
        cout<<"Argument "<<i<<" is "<<argv[i]<<endl;
    return 0;
}

圖片.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容