C++中,比較常見的是不帶參數的主函數int main(),如果使用命令行執行程序,主函數也可以接收預先輸入的參數,形式如下。
int main(int argc,char **argv)
- argc:命令行參數個數(Argument Count)
- argv:命令行參數向量(Argument Vector)
例如,我們在命令行輸入Project.exe string1 string2 string3
時,argc=4,表示輸入的參數個數是4,分別是Project.exe
、string1
、string2
、string3
。
argv是一個字符串數組,對應存儲這4個字符串,即argv[0] = "Project.exe", argv[1] = "string1", argv[2] = "string2", argv[3] = "string3"。因此可以在主函數中,后續通過argc和argv獲取參數信息。
int main(int argc,char **argv)也可以寫成int main(int argc, char *argv[])。
示例
假設要通過命令行接收一串數字,程序輸出這串數字的和。
#include <iostream>
#include <cstdlib>
// int main(int argc, char *argv[])
int main(int argc, char **argv)
{
int sum = 0;
for (int i = 1; i < argc; ++i)
{
int num_i = atoi(argv[i]); // 字符串轉換成整數
sum += num_i;
}
std::cout << sum;
return 0;
}
編譯程序,生成.exe文件,windows環境下,可以進入cmd界面,通過cd
指令進入exe文件的所在目錄。
比如我這里所生成的Project.exe文件路徑為 E:\C++ Projects\MediaTek\03 數列求和\Project1\Debug,在cmd界面,先輸入e:
,然后回車,進入E盤,再輸入cd E:\C++ Projects\MediaTek\03 數列求和\Project1\Debug
,回車,從而進入exe文件的所在目錄。
接下來輸入Project1.exe 11 12 13 14
,回車,結果顯示為50。