C++中讀寫檔案過程中異常處理機制
阿新 • • 發佈:2019-02-11
在利用C++進行檔案讀取與寫入過程中,無論是針對二進位制檔案還是文字檔案均需要進行異常處理,在C++中我們可以利用CFile進行檔案的讀寫,而在MFC中還可以利用CStdioFile進行檔案的讀寫。
利用CFile進行讀文字檔案過程中的異常處理可以通過如下程式碼實現
CString m_strFileName = "test.txt"; CFile m_File; CFileException ex; if (!m_File.Open(m_strFileName,CFile::modeRead | CFile::shareDenyWrite, &ex)) { TCHAR szError[1024]; ex.GetErrorMessage(szError,1024); AfxMessageBox(szError); return; } else { }
這樣如果在檔案讀取過程中出現錯誤,程式就會彈出對話方塊提醒使用者,並中止程式執行。對於寫文字檔案程式碼如下
CString m_strFileName = "test.txt"; CFile m_File; CFileException ex; if (!m_File.Open(m_strFileName,CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive, &ex)) { TCHAR szError[1024]; ex.GetErrorMessage(szError,1024); AfxMessageBox(szError); return; } else { }
對於寫入二進位制檔案的程式碼如下
CString m_strFileName = "test"; CFile m_File; CFileException ex; if (!m_File.Open(m_strFileName,CFile::modeCreate | CFile::modeWrite | CFile::shareExclusive | CFile::typeBinary, &ex)) { TCHAR szError[1024]; ex.GetErrorMessage(szError,1024); AfxMessageBox(szError); return; } else { }
二級制的讀取同文本檔案讀取相同只需加上CFile::typeBinary即可,這樣無論是在讀取還是寫入檔案如果這過程中出現什麼問題,都會給使用者彈出提醒對話方塊,告知使用者出錯!
對於CStdioFile在讀寫檔案過程中異常機制的處理與CFile相同,這裡不再贅述。