C++文件操作——MFC打开文件与保存文件

来源:互联网 发布:淘宝网热卖怎么加入 编辑:程序博客网 时间:2024/06/03 21:16

1.MFC打开文件并按行读取文件内容

void CFileDlg::OnBnClickedButtonFileRead(){vector<string> v_str;CFileDialog fileDlg(TRUE);fileDlg.m_ofn.lpstrTitle = L"Open File";fileDlg.m_ofn.lpstrFilter = L"Text Files(*txt)\0*.txt\0All Files(*.*)\0*.*\0\0";if (IDOK == fileDlg.DoModal()){vector<CString> v_cstr;CStdioFile file;if (file.Open(fileDlg.GetPathName(), CFile::typeText | CFile::modeRead)){CString str;// 处理UNICODE下【中文乱码】异常char * pOldLocale = _strdup(setlocale(LC_CTYPE, NULL));setlocale(LC_CTYPE, "chs");while (file.ReadString(str)){v_cstr.push_back(str);str.Empty();}// 处理完毕后,释放资源setlocale(LC_CTYPE, pOldLocale);free(pOldLocale);}file.Close();m_CtrlEditReadFile.SetWindowText(fileDlg.GetPathName());}}

2.MFC保存文件内容,则将上述

void CFileDlg::OnBnClickedButtonFileWrite(){CFileDialog FileDlg(FALSE, L"txt", _T("Test"));   FileDlg.m_ofn.lpstrTitle = L"Save File";  FileDlg.m_ofn.lpstrFilter = L"Text Files(*txt)\0*.txt\0All Files(*.*)\0*.*\0\0";if (IDOK == FileDlg.DoModal())  {  CFile File(FileDlg.GetPathName(),CFile::modeCreate|CFile::modeReadWrite);  char szBufData[100] = {"hello word!"};  //写入文件内容,不包含/0  File.Write(szBufData, strlen(szBufData));  //立即写入,不缓冲  File.Flush();  //文件操作结束关闭  File.Close();  }  }