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!