【问题标题】:Passing arguments to main in C using Eclipse使用 Eclipse 将参数传递给 C 中的 main
【发布时间】:2015-08-22 06:57:21
【问题描述】:

我在 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 正确吗?让我提醒您,我要传递的参数是一个字符串数组,其中字符串是数字。此外,来自atoiint 是否会通过强制转换成功转换为size_t

2) 我必须在 Eclipse 的参数框中输入什么? 当我通过时:2 {"3","50"} 它不起作用。我不应该先传递数组中的参数数量,然后传递字符串数组吗?我有点困惑。这也涉及从命令行传递参数,因为我猜它必须具有相同的格式?我也不知道该怎么做。

谢谢。

【问题讨论】:

  • argv[0] 按照惯例是程序的名称

标签: c arguments main atoi


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-03
    • 2013-09-21
    • 2016-04-16
    • 2017-06-14
    • 2016-11-19
    • 2013-04-14
    • 1970-01-01
    • 2014-06-28
    相关资源
    最近更新 更多