使用 Eclipse 在 C 中将参数传递给 main
Passing arguments to main in C using Eclipse
我在 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
正确吗?让我提醒您,我要传递的参数是一个字符串数组,其中字符串是数字。另外,atoi
中的 int
是否会通过强制转换成功转换为 size_t
?
2) 我必须在 Eclipse 的参数框中输入什么?
当我通过时:2 {"3","50"}
它不起作用。难道我不应该先传递数组中的参数数量,然后再传递字符串数组吗?我有点困惑。这也适用于从命令行传递参数,因为我猜它必须具有相同的格式?我也不知道怎么做。
谢谢。
1) 当然,如果您假设您的输入是有效数字,那一切都很好(除了下面描述的 argv
索引)。如果不是,atoi
将 return 0
.
2) 你不打算将参数传递给 main
——相反,你将参数传递给程序,OS 提出正确的参数传递给 main
。因此,与其传递 2 {"3","50"}
,不如传递 3 50
。在你的 main
函数中,你会看到 argc == 3
,argv[0]
是程序的名称,argv[1]
是字符串 "3"
,argv[2]
是字符串 "50"
.
我在 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
正确吗?让我提醒您,我要传递的参数是一个字符串数组,其中字符串是数字。另外,atoi
中的 int
是否会通过强制转换成功转换为 size_t
?
2) 我必须在 Eclipse 的参数框中输入什么?
当我通过时:2 {"3","50"}
它不起作用。难道我不应该先传递数组中的参数数量,然后再传递字符串数组吗?我有点困惑。这也适用于从命令行传递参数,因为我猜它必须具有相同的格式?我也不知道怎么做。
谢谢。
1) 当然,如果您假设您的输入是有效数字,那一切都很好(除了下面描述的 argv
索引)。如果不是,atoi
将 return 0
.
2) 你不打算将参数传递给 main
——相反,你将参数传递给程序,OS 提出正确的参数传递给 main
。因此,与其传递 2 {"3","50"}
,不如传递 3 50
。在你的 main
函数中,你会看到 argc == 3
,argv[0]
是程序的名称,argv[1]
是字符串 "3"
,argv[2]
是字符串 "50"
.