2014-02-15 75 views
2

我想在Unix中使用終端創建一個文件。我的代碼如下。我知道一個事實,argv [1]從終端屏幕上獲取數據,所以例如當我做./a.out newfile.txt時,argv [1]的值爲newfile.txtc在終端使用freopen和argv創建文件[1]

當我運行命令ls來檢查我的目錄,該文件被稱爲argv [1]。我是否需要使用某種形式的指針才能成功實現我所嘗試的?

問候

int main (int argc, char* argv[]) 
{ 
    printf("File to create: %s \n", argv[1]); 
    freopen("argv[1]", "w+", stdout); 
    return 0; 
} 
+1

不要忘記檢查從'freopen函數的返回值() '所以你知道它是否成功。 –

回答

2

你告訴freopen創建一個名爲"argv[1]"文件,爲char*(稱爲「串」如果你願意)。實際使用argv[1]參數創建一個文件按照給你的程序的第一個參數,不引用的argv [1]:

freopen(argv[1], "w+", stdout); 
1

只是刪除引號。

freopen(argv[1], "w+", stdout);