Re: C++点滴:main()函数
帖子由 tiger » 2009-07-04 14:32
关于第二种定义方式的参数:
int argc -- 记录命令行参数的个数,命令行参数的数量最小为1,及可执行文件本身的名称。
char *argv[] -- 命令行参数(数组)
如下面程序:
代码: 全选
// hello.cpp
#include <iostream>
int main(int argc, char *argv[]) {
std::cout << "命令名:" << argv[0] << std::endl;
if (1 == argc) {
std::cout << "Hello world" << std::endl;
return 0;
}
std::cout << "Hello to " << argc - 1 << " friends: ";
for (int i = 1; i < argc; ++i) {
std::cout << (1 == i ? "" : ", ") << argv[i];
}
std::cout << '.' << std::endl;
// return 0; //返回语句可写可不写
}
简单编译:
代码: 全选
g++ -ohello -O2 hello.cpp
不带命令行参数执行程序
代码: 全选
kwarph@hopeful:~$ ./hello
命令名:./hello
Hello world
有命令行参数执行程序:
代码: 全选
kwarph@hopeful:~$ ./hello tiger
命令名:./hello
Hello to 1 friend(s): tiger.
代码: 全选
kwarph@hopeful:~$ ./hello tiger longdouble
命令名:./hello
Hello to 2 friend(s): tiger, longdouble.