给定一个命令行工具,我在命令行中使用这个工具:./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;
}
答案 0 :(得分:1)
首先,您应该通过选中argc
来检查参数是否存在。如果您不能直接使用char *
(您应该可以这样做),只需将其分配给argv[x]
。
答案 1 :(得分:1)
char* block1_arg_Filename = argv[1];
当然,在尝试之前请先检查argc > 1
。
答案 2 :(得分:0)
int main(int argc, char ** argv) {
if (argc > 1) {
char *str = argv[1];
/** do some stuff **/
}
return 0;
}
试试这个