我在Eclipse中有一个程序,我需要将一些参数传递给main。
更具体地说,我需要传递2个字符串(它们是数字),并且需要调用其他一些函数。这是我的主要内容:
int main(int argc, char **argv) {
int n = atoi(argv[0]);
size_t size = (size_t)(atoi(argv[1]));
char **commands = getCommands(n, size);
return 0;
}
什么getCommands无关紧要,因为我的问题是:
1)我在这里使用atoi
是否正确?让我提醒你,我想传递的参数是一个字符串数组,其中字符串是数字。此外,int
atoi
只会通过投射成功转换为size_t
吗?
2)我究竟需要在Eclipse的参数框中添加什么?
当我通过时:2 {"3","50"}
它不起作用。我不应该首先传递数组中的参数数量,然后传递字符串数组吗?我有点困惑。这也是从命令行传递参数,因为我猜它必须具有相同的格式?我不知道该怎么做。
感谢。
答案 0 :(得分:3)
1)当然,如果您假设您的输入是有效数字,那么一切正常(如下所述的argv
指数除外)。如果没有,atoi
将返回0
。
2)你不是要将参数传递给main
- 而是将参数传递给程序,操作系统会提供正确的参数传递给main
。因此,您只需传入2 {"3","50"}
,而不是传递3 50
。在main
函数中,您会看到argc == 3
,argv[0]
是程序的名称,argv[1]
是字符串"3"
,{{1是字符串argv[2]
。