2013-05-03 57 views
2

我使用的是fopen(),我需要打開一個文件,其中我通過一個路徑,其中包含空格作爲參數。這裏是我的代碼:我們可以傳遞一個包含空格的路徑字符串作爲fopen()的參數嗎?

FILE * pFile; 
pFile = fopen ("\this folder\myfile.txt","w"); 

這樣工作,還是我需要在那裏添加一些東西來識別空間?謝謝。

+1

你爲什麼不試試? – 2013-05-03 14:22:47

+3

最好找出肯定會嘗試它(提示:它會工作,一旦你用'\\''s替換'\\ s,否則第一個字符將是'TAB')。 – dasblinkenlight 2013-05-03 14:22:57

+0

我只是想確保這不會首先導致問題。我覺得這是一個非常基本的問題。 – Tommy 2013-05-03 14:24:49

回答

3

空間將工作,但你需要逃跑'\'不過,因爲

pFile = fopen ("\\this folder\\myfile.txt","w") 
+0

真棒,謝謝! – Tommy 2013-05-03 14:25:16

3

沒有什麼特別的,你需要做的,如果路徑中有空格。

pFile = fopen ("\\this folder\\myfile.txt","w"); 

應該工作。請注意字符串中所需的雙反斜槓。

0

not pFile = fopen(「\ this folder \ myfile.txt」,「w」);

應該是pFile = fopen(「\ this folder \ myfile.txt」,「wb」);

+0

您必須將'\'替換爲路徑的'\\'。 – 2018-02-04 10:40:18

0

考慮:rawurlencode()

如果您嘗試加載外部資源,如http://domain.com/path/to/file/filename has spaces.php,那麼你可能需要編碼的網址,以避免fopen()從失敗。

在這種情況下,實際上應該調用rawurlencode(),因爲它會將所有必需的字符轉換爲%XY字符,包括空格。常規urlencode()將空格轉換爲+,這無濟於事。

警告:我沒有在廣泛的字符串列表上測試過,所以它可能會產生一組不同的問題,但它在任何情況下都可以找到。

相關問題