2010-10-29 40 views
1

文件我沒有在C程序,但它不允許以節省C:\ SomeDirectory \ afile.txt保存爲C的fopen

我使用這個:

FILE* m_hFile = fopen("c:\\SomeDirectory\\afile.txt", "a+t"); 
fprintf(m_hFile, "testing"); 
fclose(m_hFile); 

爲什麼呢?是否有可以保存的定義文件夾?

SomeDirectory是以前創建的。

我使用的是Windows 7操作系統。

+0

'fopen'是從C標準庫,而不是C++標準庫。 – dreamlax 2010-10-29 04:22:10

+0

好的我改變了問題 – okami 2010-10-29 04:24:11

+1

@Okami:足夠的訪問權限問題? – 2010-10-29 04:24:20

回答

2

這聽起來像也許「SomeDirectory」不存在。您可以使用C++創建文件夾,但您需要檢查是否已經存在。只是調用open命令不會自動創建文件夾。 :)

4

如果fopen遇到錯誤,它會設置errno變量指示發生了什麼錯誤。您可以測試這一點,或者更簡單,使用perror打印出的錯誤消息會告訴你什麼地方出了錯:

FILE* m_hFile = fopen("c:\\SomeDirectory\\afile.txt", "a+t"); 
if (m_hFile == NULL) { 
    perror("fopen"); 
} 
+0

在Windows XP上它工作,在Win 7上出現問題。我正在以管理員身份執行... – okami 2010-10-29 04:31:49

+0

您是否嘗試過使用'perror'?你收到什麼錯誤信息? – casablanca 2010-10-29 04:32:24

+0

錯誤是:文件初始化失敗 – okami 2010-10-29 04:42:16