2012-05-29 26 views
2

我希望將文件名作爲C程序的參數。我在fopen中嘗試了所有可能的方法,如下所示。在fopen中使用arg向量

fp = fopen(*argv[2], "r"); 

也使用"*argv[2]"但沒有奏效。我想知道我出錯的地方,以便我可以正確使用它。謝謝!

回答

4

應該

fp = fopen(argv[2], "r"); 

請注意,argv[0]將包含exe文件名(含路徑),其中傳遞將argv[1]啓動其他參數。

參考this更多細節上使用的命令行參數C.

在你的主要功能,如果你正在char **argv作爲參數,該數組下標argv[1]自動把它變成一個char *預計爲fopen的說法。

+1

+1,這將有助於解釋該數組下標(例如'X [1]')就是取'字符**'到需要的char *'。 – user7116

3
fp = fopen(argv[2], "r") 

足夠

argv的是字符指針的陣列。對這個數組進行索引可以爲您提供在命令行上傳遞的字符串。你不需要進一步的附加*

+0

感謝它的工作 – Shash

1

fopen提領需要一個char *作爲參數的文件名:

FILE *的fopen(爲const char *路徑,爲const char *模式);

你只需要使用它像:

fp = fopen(argv[2], "r"); // if 2nd argument passed is your filename 
+0

感謝它的工作 – Shash