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