使用Eclipse将参数传递给C中的main

时间:2015-06-07 21:09:05

标签: c arguments main atoi

我在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"}它不起作用。我不应该首先传递数组中的参数数量,然后传递字符串数组吗?我有点困惑。这也是从命令行传递参数,因为我猜它必须具有相同的格式?我不知道该怎么做。

感谢。

1 个答案:

答案 0 :(得分:3)

1)当然,如果您假设您的输入是有效数字,那么一切正常(如下所述的argv指数除外)。如果没有,atoi将返回0

2)你不是要将参数传递给main - 而是将参数传递给程序,操作系统会提供正确的参数传递给main。因此,您只需传入2 {"3","50"},而不是传递3 50。在main函数中,您会看到argc == 3argv[0]是程序的名称,argv[1]是字符串"3",{{1是字符串argv[2]