在C中使用Eclipse向main传递参数



我在Eclipse中有一个程序,我需要向main传递一些参数。

更具体地说,我需要传递2个字符串(这是数字),需要调用一些其他函数。下面是我的main:

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的使用是否正确?提醒一下,我要传递的参数是一个字符串数组,字符串是数字。同样,仅仅通过铸造,atoi中的int就能成功地转化为size_t吗?

2)在Eclipse中,我到底需要在参数框中输入什么?当我通过:2 {"3","50"}它不工作。我不是应该先传递数组中的参数个数,然后再传递字符串数组吗?我有点糊涂了。这也适用于从命令行传递参数,因为我猜它必须具有相同的格式?我也不知道该怎么做。

谢谢。

1)当然,这一切都很好(除了下面描述的argv索引),如果您假设您的输入是有效的数字。如果不是,atoi将返回0

2)你不打算传递参数给main——相反,你传递参数给程序,操作系统会给出正确的参数传递给main。所以不传递2 {"3","50"},只传递3 50。在main函数中,您将看到argc == 3, argv[0]是程序的名称,argv[1]是字符串"3", argv[2]是字符串"50"

相关内容

  • 没有找到相关文章

最新更新