c/c++ main() 是 c/c++ 開發遇到的第一個問題 同時也不是很簡單東西 所以今天查點資料 與大家分享
1. 僅2種形態的main()被接受 即:
int main()
int main(int argc, char *argv[])
2. 以一個簡單例子演示之
* 代碼:接受參數 並打印之
include <iostream>
using namespace std;
int main(int argc, char *argv[]){
printf("count:%i\n",argc);
for(int i=0;i<argc;i++){
cout<<i<<":"<<argv[i]<<endl;
}
}
* g++ compile:
g++ list.cpp -o list
* to run it w/ parameters:
$ ./list "Hello" "World"
count:3
0:./list
1:Hello
2:World
3. 應用
比如命令: gcc source hello.cpp obj list
上述命令是:如何取出 hello 和 list 呢?
* 先貼代碼:
#include <iostream>
using namespace std;
int isEven(int i){
if((i&1)==1){
return 0;
}
else {
return 1;
}
}
char * getValue(char* index,int argc, char *argv[]){
for(int i=1;i<argc;i++){
if(strcmp(index,argv[i])==0){
return argv[i+1];
}
}
return "";
}
int main(int argc, char *argv[]){
//for(int i=0;i<argc;i++){
// cout<<i<<":"<<argv[i]<<endl;
//}
if(isEven(argc-1)!=1){
return -1;
}
char* s2 = getValue("hello", argc,argv);
if(strcmp(s2,"")!=0){
cout<<s2<<endl;
}
return 0;
}
* 解釋:
1. 先判斷參數個數 若爲奇數 則錯誤 反之爲對
2. 對參數列表逐個判斷 如果是目標索引名 則取出後一字符串
done!