2015-11-03 63 views
0

我一直在創造將會從Excel拉的一系列數據,並將其存儲在變量的C程序。我的問題是,我如何在使用變量的C中創建一個目錄。昨天我在工作中嘗試了幾種方法。創建目錄基於關閉變量名

#include <stdio.h> 

int main(void) 
{ 
    //creating directory (works) 
    system("md E:\sub_directory"); 
    system("mkdir E:\\sub_dir2"); 

    //trying to create directory based off variables (not working yet) 
    char CustName[50] = "Mars"; 
    char Product[50] = "Chocolate Drops"; 
    int JobNumber = 100; 

    system("md E:\\",JobNumber,CustName,Product"",JobNumber,CustName,Product); 
system("md E:\\%04i %s %s",JobNumber,CustName,Product); 
    return 0; 
} 

正如你在上面看到的,這是我完成的代碼。第一部分只是一個參考點,所以我知道基本的命令結構。然後,我開始擺弄格式化,目前我知道哪些方法無效。

會有人能夠擺脫對我怎麼會使用變量名稱來創建目錄一些輕? (我目前正在使用Windows 10機器,但程序將在Windows 7機器上運行,我不知道這是否會改變任何內容)

+0

。 –

+0

您不必使用system(),您可以使用\t mkdir(path); – BobRun

回答

3

您應該使用sprintf來創建一個字符串,其中包含您想要的完整路徑名創建,那麼你應該使用標準庫的mkdir函數來創建目錄。

注意,要創建一個目錄,所有組件路徑必須存在,所以創建E:\my\path您可能需要先創建E:\my,然後E:\my\path

0

我有看sprintf,我想我明白。我哈哈已經下面的代碼:

char CustName[50] = "Mars"; 
char Product[50] = "Chocolate Drops"; 
int JobNumber = 100; 
char *filepath[100]; 

sprintf(*filepath, "mkdir D:\\%04i %s %s", JobNumber, CustName, Product); 
puts(*filepath); 

對不起,如果這個心不是正確的使用方法,我依然的pritty新的`sprintf`閱讀了編程

+0

我不知道它會對你有多大用處,但你也可以通過在宏函數中使用#來將變量名變成字符串。 –

+0

你應該寫:'sprintf(filepath,「D:\\%04i \\%s \\%s」,JobNumber,CustName,Product);'然後調用'mkdir(filepath);' –