簡體   English   中英

在main()內傳遞C ++命令行參數,但執行相同的工作

[英]Passing C++ command line arguments inside main(), yet do the same job

有沒有辦法將命令行參數保留為標准參數,但又在內部內部傳遞argv

就像,改變這個:

int main(int argc, char **argv) {
    App app(argc,argv);
    return app.exec();
}

像這樣:

int main(int argc, char **argv) {
    vector<string> argv ="arguments";
    int argc = X;
    App app(argc,argv);
    return app.exec();
}

當我有:

./a.out -a A -b B -c C

我知道這很奇怪。 我只想找到一種解決方法,不要更改大型項目的源代碼,而是每次僅使用./a.out運行命令行參數。

將每個參數放在char數組中,然后將指向這些數組的指針放入指針數組。

char arg1[] = "./a.out";
... 
char argN[] = "whatever";
char* argv[] = { arg1, ..., argN}

App app(N, argv);

您可能正在尋找

const char *myArgv[]={"-a","A","-b","B"};
int myArgc=4;
App app(myArgc,myArgv);
return app.exec();
std::vector<std::string> args(argv, argv+argc);

您可以重命名傳遞給app參數,例如,以避免名稱沖突。

int main(int argc, char **argv) {
    vector<string> app_argv = /* contents */;
    int app_argc = app_argv.size() ;
    App app(app_argc, app_argv);
    return app.exec();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM