读书人

CStdioFlie有关问题

发布时间: 2012-06-13 12:30:18 作者: rapoo

CStdioFlie问题

C/C++ code
/* *为啥保存ASCII都行??? *UNICODE却不行???? *难道是人品问题??? *求解决方法..... */void CNotepadDlg::OnSave(){    // TODO: 在此添加命令处理程序代码    CFileDialog fSave(FALSE);    fSave.m_ofn.lpstrTitle = _T("另存为");    fSave.m_ofn.lpstrFilter = _T("Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0");    fSave.m_ofn.lpstrDefExt = _T("txt");    if(fSave.DoModal() == IDOK){        CStdioFile pSave(fSave.GetPathName(), CFile::modeCreate | CFile::modeWrite);        CString strTemp;        m_edit.GetWindowText(strTemp);        pSave.WriteString(strTemp);        pSave.Close();    }}void CNotepadDlg::OnOpen(){    // TODO: 在此添加命令处理程序代码    CFileDialog fOpen(TRUE);    fOpen.m_ofn.lpstrTitle = _T("打开");    fOpen.m_ofn.lpstrFilter = _T("Test Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0");    fOpen.m_ofn.lpstrDefExt = _T("txt");    if(fOpen.DoModal() == IDOK){        CStdioFile pOpen(fOpen.GetPathName(), CFile::modeRead);        CString strTemp;        pOpen.ReadString(strTemp);        m_edit.SetWindowText(strTemp);        pOpen.Close();    }}


[解决办法]
CStdioFile pOpen(fOpen.GetPathName(), CFile::modeRead|CFile::typeBinary);
[解决办法]
用CFile,不用CStdioFile

CFile pSave(fSave.GetPathName(), CFile::modeCreate | CFile::modeWrite);
CString strTemp(_T("World!你好!Hello, World"));
pSave.Write(strTemp, strTemp.GetLength() * sizeof(TCHAR));
pSave.Close();

读书人网 >C++

热点推荐