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



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

int main(int argc,char **argv)

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

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

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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM