0

给定我在命令行中使用的命令行工具,如下所示:./tool img/file.png

如何将第一个参数分配给变量?我尝试了*argv[1], &argv[1]malloc(sizeof(argv[1]))但随后出现invalid initializer错误。我只是没有得到基本的 C 概念还是我卡在哪里了?谢谢你的帮助!

int main(int argc, char ** argv) {

    char block1_arg_Filename[] = "img/file.png"; //that's how it works but I don't need it

    char block1_arg_Filename[] = argv[1]; // don't get it to work but that's how I need it

    [...]

    return 0;

}
4

3 回答 3

1

首先,您应该通过检查来检查参数是否存在argc。然后只需将其分配给 achar *如果您不能argv[x]直接使用(您应该可以这样做)。

于 2013-06-20T12:10:47.463 回答
1
char* block1_arg_Filename = argv[1];

当然,argc > 1在尝试之前检查一下。

于 2013-06-20T12:11:45.413 回答
0
int main(int argc, char ** argv) {

    if (argc > 1) {
      char *str = argv[1];
      /** do some stuff **/
    }

    return 0;

}

尝试这个

于 2013-06-20T12:28:46.403 回答