| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 689 人关注过本帖
标题:请教C++中, main()的参数
只看楼主 加入收藏
Kong314
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-4-25
收藏
 问题点数:0 回复次数:4 
请教C++中, main()的参数

main()函数的参数是OS在运行程序时, 先从main()函数开始,

这时它会向main()函数传递一些值, 这是作为main()的"形参"会接受到了一些数据,

这些数据会会是写什么呢?

是不是不同的程序, 接受到的值不一样呢?

int main(int argc, char *argv[])

{

if(argc < 4)

{

cerr << "usage: " << argv[0] << " datafile datatype minsup [output]" << endl;

cerr << "datatype = 1 for Quest datagenerator binary" << endl;

cerr << "datatype = 2 for Quest datagenerator ascii" << endl;

cerr << "datatype = 3 for flat, i.e. all items per transaction on a single line" << endl;

cerr << "datatype = 4 for ascii version of Quest datagenerator binary" << endl;

}

else

{

FPgrowth *fpgrowth = new FPgrowth();

fpgrowth -> setData (argv[1],atoi(argv[2]));

fpgrowth -> setMinsup (atoi(argv[3]));

if(argc==5)

fpgrowth->setOutput(argv[4]);

clock_t start = clock();

int added = fpgrowth->mine();

cout << added << "\t[" << (clock()-start)/double(CLOCKS_PER_SEC) << "s]" << endl;

if(argc==5)

cout << "Frequent sets written to " << argv[4] << endl;

delete fpgrowth;

}

return 0;

}

这是一个面向对象的main()函数, 里面的函数我已经看懂了.

但是不知道到底main()函数的形参得到了什么值?????

请赐教

搜索更多相关主题的帖子: main 参数 
2006-04-25 16:44
柳儿
Rank: 6Rank: 6
等 级:贵宾
威 望:25
帖 子:1830
专家分:30
注 册:2004-9-23
收藏
得分:0 

是命令行参数。
第一个,是参数的个数,第二个是存放参数内容的
输入是通过运行的时候输入的。
比如编译好的程序叫HelloWorld
输入HelloWorld 2 xxx xxxx ,其中2是个数xxx是你输入的值。


成功会使人骄傲。如果你骄傲自大,你就会停止学习。不学习,人就停止了进步
2006-04-25 17:04
Magicmoon20
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2006-4-2
收藏
得分:0 

还是不太明白呀
姐姐能不能讲的清楚一点呀

2006-04-25 17:29
Kong314
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-4-25
收藏
得分:0 
int main (int argc, char *argv[])

第一个是参数个数, 第二个是存放参数的啥?(好像有半截话没说出)

那么就是, OS会传递不同的值给main()函数了??? 每次这个值都是随机的???

如上的argc的值如果低于4, 那么就不会执行程序啦???

那要使程序执行, 就是要控制argc的值吗?

同学的代码, 他们上网下的, 没读懂
2006-04-25 17:59
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
收藏
得分:0 
第二个数是所有输入参数的字符数组。
比如你的可执行程序叫a.exe
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
for (int intargCount = 0; intargCount < argc; intargCount++)
cout << argv[intargCount] << endl;
return 0;
}

在OS敲入如下命令:
a.exe arg1 arg2 arg3
就会输出
arg1
arg2
arg3

http://myajax95./
2006-04-25 23:25
快速回复:请教C++中, main()的参数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026621 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved