基於MFC儲存和開啟檔案
阿新 • • 發佈:2018-11-07
- 在C語言中用FILE結構體來對檔案進行操作,比如fprintf格式化寫入檔案
- 在C++中利用CStdioFile類,它是繼承於CFile類的。
void CTestDlgDlg::OnBnClickedSave() { CStdioFile file; //繼承於CFile類 BOOL isOpen = FALSE; //是否開啟(否則為儲存) CString defaultDir = L""; //預設開啟的檔案路徑 CString fileName = L""; //預設開啟的檔名 CString filter = L"檔案 (*.txt; *.ppt; *.xls)|*.txt;*.ppt;*.xls||"; //檔案過慮的型別 CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, filter, NULL);//利用CFileDialog類中建構函式對其引數進行初始化。 INT_PTR result = openFileDlg.DoModal();//當點選儲存時,模態對話方塊跳出,程式繼續執行。 CString filePath = defaultDir + "\\" + fileName; CString str; int *p = (int*)malloc(100 * sizeof(int)); for (int i = 0; i < 100; i++) { p[i] = i; } if (result == IDOK) { filePath = openFileDlg.GetPathName();//得到檔案的絕對路徑 file.Open(filePath, CFile::modeCreate | CFile::modeWrite); for (int i = 0; i < 100; i++) { str.Format(_T("%d\n"),p[i]); file.WriteString(str); } file.Flush(); file.Close(); } CWnd::SetDlgItemTextW(IDC_EDIT_SRC, filePath); //_T("")和L""兩種寫法。作用是讓你的程式支援Unicode編碼, //因為Windows使用兩種字符集ANSI和UNICODE,前者就是通常使用的單位元組方式,但這種方式處理象中文這樣的雙位元組字元不方便,容易出現半個漢字的情況。而後者是雙位元組方式,方便處理雙位元組字元。 //_L不管你是以什麼方式編譯,一律以UNICODE方式儲存。 }