在默认的情况下CArchive输出到文件的好像有一些二进制字符,我用Cfile创建一个对象的时候用了Cfile::typeText,但是运行的时候出错了,我应该怎么做?

解决方案 »

  1.   

    CArchive类不能设置文件的写入方式。
      

  2.   

    对了,我用CStdioFile可以使用Cfile::typeText,但是CMemFile不行,不过用CStdioFile写出来的还是二进制的。
      

  3.   

    很奇怪,文本文件为什么要用CArchive,CArchive很显然是为二进制量身定做的
      

  4.   

    CFile不可以用typeText,可以看源代码
    BOOL CFile::Open(LPCTSTR lpszFileName, UINT nOpenFlags,
    CFileException* pException)
    {
    ASSERT_VALID(this);
    ASSERT(AfxIsValidString(lpszFileName));
    ASSERT(pException == NULL ||
    AfxIsValidAddress(pException, sizeof(CFileException)));
    ASSERT((nOpenFlags & typeText) == 0);   // text mode not supported
      

  5.   

    “在默认的情况下CArchive输出到文件的好像有一些二进制字符”+++++++++++++++++++++++++++++++++++++++++
    文件输出内容还不是你定的,输出了二进制字符说明你确实输出了,在输出语句上做文章。
      

  6.   

    那CMemFile和CStdioFile可以写纯文本吗?