[英]input directory as command line arguement in c
我正在建立一个程序,可以互相复制目录,但是我只能让它以硬编码方式工作。
我希望目录由用户通过命令行参数输入。
我用过
char SrcPath[] = argv[1];
但是当我硬编码时
char SrcPath[] = "home/user/Desktop/cat"; it works fine.
但这是行不通的,有人可以解释为什么/建议这样做的方法吗? 在CLI中使用目录时,是否有一种必须输入目录的特殊方式?
更改为char *SrcPath = argv[1];
应该管用。 指针和数组是不同的东西!
argv[]
是一个char指针数组,因此,当您使用argv[1]
,将获得数组中的第二项,即char指针。 正如James所建议的,如果要存储argv[1]
的值(这是一个内存地址),则必须使用相同的类型,本例中为char *
。
如果您需要保存目录路径以进行任何类型的处理或操作,则需要执行类似的操作以将命令行参数存储在char数组中。
char srcPath[100];
int i;
for (i = 0; argv[1][i] != '\0'; i++) {
srcPath[i] = argv[1][i];
}
数组名称是指针,因此使用下标[]
取消引用。 对于存储在argv[]
char数组也可以这样说。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.