C++中 int main(int argc, char **argv) 命令行傳遞參數


C++中,比較常見的是不帶參數的主函數int main(),若是使用命令行執行程序,主函數也能夠接收預先輸入的參數,形式以下。ios

int main(int argc,char **argv)

  • argc:命令行參數個數(Argument Count)
  • argv:命令行參數向量(Argument Vector)

例如,咱們在命令行輸入Project.exe string1 string2 string3時,argc=4,表示輸入的參數個數是4,分別是Project.exestring1string2string3windows

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文件的所在目錄。3d

好比我這裏所生成的Project.exe文件路徑爲 E:\C++ Projects\MediaTek\03 數列求和\Project1\Debug,在cmd界面,先輸入e:,而後回車,進入E盤,再輸入cd E:\C++ Projects\MediaTek\03 數列求和\Project1\Debug,回車,從而進入exe文件的所在目錄。code

接下來輸入Project1.exe 11 12 13 14,回車,結果顯示爲50。blog

相關文章
相關標籤/搜索