1. 程式人生 > >C++之main函式帶引數

C++之main函式帶引數

前言:我們一般使用的main函式不加引數,當加了引數會怎樣呢?

int main(int argc,char**argv)
{
....
return 0;
}

引數解析: int argc: 英文名為arguments count(引數計數) char** argv: 英文名為arguments value/vector(引數值) argv[0] 指向程式執行時的全路徑名 argv[i] 指向程式在DOS命令中執行程式名後的第i個字串 argv[argc]陣列越界. 例一:

#include <iostream>//輸入輸出流類庫 
using namespace std;
int main(int argc, char** argv) {
//main函式引數測試
        cout<<"此程式一共有"<<argc<<"個引數"<<endl; 
		for(int i=0;i<argc;i++) {
			if(i==0){
				cout<<"此程式全路徑名是:"<<argv[i]<<endl;
			} 
			else{
				cout<<"第"<<i<<"個引數是"<<argv[i]<<endl;
			}	
		}
		system("pause");	
	return 0;
}

例二:

#include <iostream>//輸入輸出流類庫 
#include <string>
using namespace std;
int main(int argc, char** argv) {
	//用main函式求和,字元變數字 ,#include <string> ;變字串to_string();變數字stoi(); 
		cout<<"一共對"<<argc-1<<"個數求和"<<endl; 
		int sum=0; 
		for(int i=1;i<argc;i++) {	
		//解決 'stoi()' was not declared in this scope.DEVC++中會出現該現象
		//Under Project->Project Options->Compiler->Code generation->Language standard choose C++11.	
			sum=sum+ stoi(argv[i]);
			if(i==argc-1)
			     cout<<stoi(argv[i]);
			else
			     cout<<stoi(argv[i])<<"+";	}
		cout<<"="<<sum<<endl;	
		system("pause");	
	return 0;}

執行方法(僅限VS2010) 1.將改程式碼在IDE環境中執行 會有下圖:在這裡插入圖片描述

2.複製此執行結果中的全路徑名到“開始”“執行”或者快捷鍵win+R,將地址貼上到這裡,然後輸入空格鍵+要輸入的引數以例一為例: 在這裡插入圖片描述 在這裡插入圖片描述 例二的執行結果如下: 在這裡插入圖片描述