我在单文档文件的一段程序
BOOL CFileDoc::OnSaveDocument(LPCTSTR lpszPathName) 
{
// TODO: Add your specialized code here and/or call the base class
CFile file;
if(file.Open(lpszPathName,CFile::modeCreate,NULL)==false)
AfxMessageBox("error");
int p[4]={1,2,3,4};
file.Write(p,4);
file.Close();
return CDocument::OnSaveDocument(lpszPathName);
}
和我在另一个基于对话框的程序
CString cs;
int buf[2]={12,54};
CFileDialog FileDlg(false);
FileDlg.DoModal();
cs=FileDlg.GetPathName();
CFile file;
file.Open(cs,CFile::modeCreate|CFile::modeWrite);
file.Write(buf,8);
file.Close();当执行文件保存时,都不能保存文件,请问好心大侠这是为什么?

解决方案 »

  1.   

    CFile file;
    if(file.Open(lpszPathName,CFile::modeCreate|CFile::modeWrite,NULL)==false)
    AfxMessageBox("error");
    int p[4]={1,2,3,4};
    file.Write(p,4);
    file.Close();
    return 1;
    //去掉原来的Return
      

  2.   

    数字的12,54对应ascii来说,显示的就是这个:黑方块和6
      

  3.   

    就如flyelf(空谷清音)所说,这样是正确的,因为你存储的是2进制
    如果想直接显示,用上面的就不行了
    可以用ini 文件
    创建文本文件:
    CStdioFile file;
    if(!file.Open(sFile,CFile::modeWrite|CFile::typeText))
    {if(!file.Open(sFile,CFile::modeCreate|CFile::modeWrite|CFile::typeText))File.WriteString("aaa");
    File.Close();
    }
      

  4.   

    可以用ini 文件
    或者
    创建文本文件:
    CStdioFile file;
    if(file.Open(sFile,CFile::modeCreate|CFile::modeWrite|CFile::typeText))
     {File.WriteString("aaa");
     File.Close();
    }