繁体   English   中英

输入目录作为C中的命令行参数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM