2013-07-24 35 views
-2

我試圖輸出緩衝器爲位於我desktop.i文件「z.txt」我在Win32中做(的Visual C++) 我的語法這樣做 -輸出重定向到文件中使用fopen_s

memcpy(HtmlFileContents,&Buffer[location],HtmlFileLength);//i have the contents in HtmlFileContents 
//which i have to display in the file "z.txt" 
       FILE *stream ; 
       errno_t err; 
       err=fopen_s(&stream, "C:\\Users\\sshekha\\Desktop\\z.txt","w");//err gives error 13 
// when in write mode but when in read mode it opens the file 
       if(err == 0) 
       { 
        MessageBox(m_hwndPreview,L" the file is opened ",L"BTN WND",MB_ICONINFORMATION); 
       } 
       else 
       { 
        MessageBox(m_hwndPreview,L" the file is not opened ",L"BTN WND",MB_ICONINFORMATION); 

      } 

任何人都可以請說明爲什麼它這樣做?

+0

你能描述它做錯了什麼嗎? – hivert

+0

你在哪裏寫*輸出到文件? –

+0

Joachim現在我只是打開它,但即使它不打開它,並且eb = ven如果我把它讀取模式它給dialodbox提到「文件打開」,但當我看到調試它有價值流= 0x000000005c5c76f0 {_ptr = 0x0000000000000000 _cnt = 0 _base = 0x0000000000000000 ...} – Sss

回答

0

你應該檢查文件是否在別的地方打開(或者更確切地說沒有關閉)。

+0

其未打開任何地方 – Sss

+0

然後,爲什麼不用記事本打開/關閉它以確保它正確關閉爲OS)並重新啓動你的程序? – Rak

+0

你也完成了。它提供了一個關於調試斷言失敗的對話框。表達式:(流!= NULL) – Sss

1

如果您檢查official reference of errors,您將看到錯誤13是EACCESS,這意味着您沒有寫入文件的權限。

您需要更改文件權限,以便您可以寫入文件以及文件夾。

+0

沒有任何錯誤的權限我有cj = hecked正確也沒有打開任何地方,我也正確關閉它。我不知道是什麼問題。 – Sss

+0

約阿希姆有一個問題?是否有必要,如果我們使用fputs()輸出到文件,那麼只有在讀取模式(不寫)的情況下寫入之前,該文件必須已經打開? – Sss

+0

@ShekharSinghSHEKHAWAT您不能寫入只能閱讀的文件。至於權限,你是否也檢查過文件夾權限? –